欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PowerShell Out-File禁止覆盖文件的方法

程序员文章站 2023-02-17 10:44:20
本文介绍使用powershell来写文件时,如何阻止系统自动覆盖已有的文件。 我们在使用脚本进行文件处理的时候,我们可能不希望使用ou-file生成的文件覆盖已有的文件。...

本文介绍使用powershell来写文件时,如何阻止系统自动覆盖已有的文件。

我们在使用脚本进行文件处理的时候,我们可能不希望使用ou-file生成的文件覆盖已有的文件。那么怎么实现呢?在out-file这个cmdlet中,有没有什么参数可以阻止out-file不声不响的覆盖了已有的文件呢?
答案是-noclobber参数。

noclobber参数

在out-file输出到文件时,如果使用了-noclobber参数,则系统遇到已有文件时,将无法执行成功。下面的例子展示了当d:\1.txt已经存在时,使用out-file输出内容到该文件时,系统将会报错。

复制代码 代码如下:

ps c:\users\spaybow> "" | out-file d:\1.txt
ps c:\users\spaybow> "" | out-file d:\1.txt -noclobber
out-file : 文件“d:\1.txt”已经存在。
所在位置 行:1 字符: 14
+ "" | out-file <<<<  d:\1.txt -noclobber
    + categoryinfo          : resourceexists: (d:\1.txt:string) [out-file], io
   exception
    + fullyqualifiederrorid : noclobber,microsoft.powershell.commands.outfilec
   ommand

另外需要说明的是:我们知道-append参数用于指定将字符串附加到文件。如果同时指定了-append 和 -noclobber参数,会不会有冲突呢?答案是,系统会将字符串附加到文件。演示如下:

ps c:\users\spaybow> "hello" | out-file d:\1.txt
ps c:\users\spaybow> "powershell" | out-file d:\1.txt -noclobber -append
ps c:\users\spaybow> type d:\1.txt
hello
powershell

关于powershell使用out-file写文件时禁止覆盖已有文件,本文就介绍这么多,希望对您有所帮助,谢谢!