PowerShell读取文件内容、替换文件内容、读取限定行的例子
程序员文章站
2023-12-23 23:49:57
我只能说,使用powershell来读取文本文件实在是一件太简单的事情了。
get-content,获取指定位置的项的内容。
语法:get-content [-path...
我只能说,使用powershell来读取文本文件实在是一件太简单的事情了。
get-content,获取指定位置的项的内容。
语法:get-content [-path] <文件路径>
[-path]由方括号引起,表示可以写,也可以不写;不写则默认后面是文件路径,写了就指名道姓的说后面是文件路径。
直接运行这样一个命令,powershell将会把文件的内容输出到控制台上,如果你是想看看文件的内容,那这样做就perfect!
但有时候,你想玩点高难度的运作——想把文件翻开来对里面的内容进行修改,那后面你可以用管道来把它传出去,或者直接把它赋值给一个变量。举例如下:
复制代码 代码如下:
$file = get-content "d:\1.txt"
get-content "d:\1.txt" | %{write-host $_.replace("日","太阳")} #这样就可以实现把d:\1.txt的内容,逐一输出,并把“日”字,替换为太阳。
获取文件的前n行,这也是一个有趣的事。可以用一句powershell来搞定。举例如下:
复制代码 代码如下:
get-content d:\1.txt -totalcount 100 | set-content top100.txt
说明:这里的set-content top100.txt是把前面一个语句的结果,写一个新的文件——top100.txt
如果这个时候,你想获取文件的第100行,你会不会想到去做一个很复杂的循环?如果是,那说明你有很好的编程素养。但是powershell告诉你不用如此麻烦。举例如下:
复制代码 代码如下:
(get-content d:\1.txt -totalcount 100)[-1]
说明:啥!你看到了啥?!如果你简单的看()[-1],那是不是像数组呢?-1表示最后一个数组元素,那就表示前100行的最后一行,那是不是第100行呢?!
最后要说一下,这个命令返回的是一个对象数组,可以用foreach-object(别名是%)去遍历它。非常方便,前面你应该已经看到“太阳”的例子了!