脚本专栏 
首页 > 脚本专栏 > 浏览文章

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

(编辑:jimmy 日期: 2024/9/17 浏览:3 次 )

本文介绍使用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写文件时禁止覆盖已有文件,本文就介绍这么多,希望对您有所帮助,谢谢!  

上一篇:PowerShell中定义多行字符串变量的方法
下一篇:PowerShell获取系统环境变量的方法
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 SiteMap