当前位置: 首页 > 编程笔记 >

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

楚钊
2023-03-14
本文向大家介绍PowerShell Out-File禁止覆盖文件的方法,包括了PowerShell Out-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写文件时禁止覆盖已有文件,本文就介绍这么多,希望对您有所帮助,谢谢!  

 类似资料:
  • 问题内容: 假设我在Java类中有一个方法,并且我不希望该类的任何子类能够覆盖该方法。我可以那样做吗? 问题答案: 您可以将方法声明为,如: 有关更多信息,请参见http://docs.oracle.com/javase/tutorial/java/IandI/final.html

  • 文件已经存在,您可以覆盖它 (“是”按钮),跳过 (“否”按钮),重命名,全部重命名 ,覆盖全部文件 (“全部皆是” 按钮),跳过全部已存在的文件 (“全部皆否”按钮) 或取消 当前的操作。 如果您选择了全部重命名 模式,重命名文件将得到象 'filename(N).txt' 的名字,'filename.txt' 的位置是原始的文件名, 'N' 是数字。

  • 问题内容: 我编写的代码应该覆盖所选文本文件的内容,但是会附加它。我到底在做什么错? 编辑 我尝试制作一个新的temp.txt文件并将新内容写入其中,删除此文本文件并将temp.txt重命名为该文件。事实是,删除总是不成功的。我认为我不必为此更改用户权限吗? 另外,程序的一部分列出了该目录中的所有文件,因此我猜它们正在被程序使用,因此无法删除。但是为什么不覆盖呢? 解决了 我最大的“ D’oh”时

  • 问题内容: 现在,我正在尝试用我的LESS代码在CSS3中执行此操作: 但是,LESS编译时将输出以下内容: 有没有办法告诉LESS不要以这种方式编译它并正常输出它? 问题答案: 使用[转义字符串(也称为转义值): 另外,如果您需要将Less Math与转义字符串混合使用: 编译为: 默认情况下,这作为“少”将值(转义的字符串和数学结果)连接在一起时起作用。

  • 我们可以禁用或覆盖身体解析器后,注入它作为中间件来表达应用程序? 在一个文件(不可编辑,由框架完成)应用程序中。使用(bodyParser.json());出口应用程序; 在另一个文件中,我正在导入应用程序,这里我想为其中一个路由禁用bodyParser。我有办法做到吗?

  • 问题内容: 覆盖文件中特定行的最佳方法是什么?我基本上想在文件中搜索字符串’@parsethis’,然后用其他东西覆盖该行的其余部分。 问题答案: 如果文件不是太大,最好的方法可能是使用file()将文件读入行数组,在行数组中搜索您的字符串并编辑该行,然后将implode()返回一起将其fwrite()返回文件。