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

(0)

相关推荐

  • PowerShell Out-File向只读文件写入内容的方法

    本文介绍使用PowerShell来写文件时,如果遇到只读文件,如何强制覆盖它. D:\2.txt是一个只读文件,如果我运行一条Out-File输出语句,将得到报错提示: 复制代码 代码如下: PS C:\Users\spaybow> "" | Out-File -append d:\2.txt Out-File : 对路径"D:\2.txt"的访问被拒绝. 所在位置 行:1 字符: 14 + "" | Out-File <<&l

  • PowerShell Out-File追加字符串到文件末尾的方法

    本文介绍PowerShell中如何将一个字符串输出到一个文件文件的结尾,即不覆盖原来的内容,只是附加到原文之后. 有这样一个任务:将"This is PowerShell!"这句话,附加到D:\1.txt文件之后. 面对这个任务,如果我们立即去想FileStream对象,那就错了!FileStream是.NET中的传统方法了!在PowerShell中,我们可以使用Out-File这个cmdlet来一步实现将字符串附加到一个文件之后的效果.且看下面的演示: 复制代码 代码如下: PS C

  • PowerShell Out-File指定文件编码的方法

    本文介绍使用PowerShell如何来创建一个文本文件,并且文本文件是使用UTF-8编码的. 要创建一个UTF-8编码的文件,不是一件容易的事情.想一想C#中创建一个UTF-8编码的文件洪哥就头疼. 后来,仔细想了一下,我们可以把这个概念偷换一下.我们可以使用Out-File这个cmdlet来输入字符串到一文件的方式来创建一个文件,并且在创建文件时,指定它的编码为UTF-8即可. 也就是说,使用如下命令我们就可以得到一个UTF-8编码的空文件了. 复制代码 代码如下: PS C:\Users\s

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

    本文介绍使用PowerShell来写文件时,如何阻止系统自动覆盖已有的文件. 我们在使用脚本进行文件处理的时候,我们可能不希望使用Ou-File生成的文件覆盖已有的文件.那么怎么实现呢?在Out-File这个CmdLet中,有没有什么参数可以阻止Out-File不声不响的覆盖了已有的文件呢? 答案是-NoClobber参数. NoClobber参数 在Out-File输出到文件时,如果使用了-NoClobber参数,则系统遇到已有文件时,将无法执行成功.下面的例子展示了当d:\1.txt已经存在

  • PowerShell查找分区中最大文件的方法(查找文件并按大小排序)

    本文介绍一个PowerShell命令,用于将某个目录或磁盘(如D盘)下占用空间最大的前几个文件.这个任务在其它编程语言中,可能要大段大段的代码,而在PowerShell中,我们只需要一行. 当我们发现某个盘空间不足时,作为管理员,我们得要将该盘上的无用的文件做一些清理.面对这项工作,我们得要想哪些是无用的文件,哪些是占用空间比较大的文件.在实际操作过程中,我们不太可能花费大量的时间和精力去把所有的无用的文件都清除掉,所以,最佳的实践是找出占用空间最大的一些文件,然后来判断一下哪些是无用的.将这些

  • PowerShell移动目录中指定文件的方法(非全部文件)

    小编在做一个小功能的时候,遇到一个功能,就是把一个目录中的指定条件的文件,移动到另外一个目录.这是需求,然后我们来分析下该怎么实现. 首先获取一个目录下子项目,第一时间可以想到Get-ChildItem,但我们之前用得太多了,这次小编想换个花样,我们就用Get-Item,然后用通配符来包括所有的子项目.当然,如果你需要指定的文件是以文件名来匹配的,那可以直接在这里使用匹配规则. 然后从选出来的子项目中,筛选中文件来.这个也是一个非常常用的功能,那就是判断PSIsContainer属性是否为$fa

  • java之File对象对文件的操作常用的几个方法(推荐)

    File对象是对文件操作最常用的类,平常工作总用的很多,贴出来了几个我工作常用的几个方法.简单总结了下 直接上代码: //构建文件对象 File file=new File("E:/android_demo/a"); File fileTest=new File("E:/android_demo/a/test.mp3"); //获取文件的父路径 File f=file.getParentFile(); System.out.println("f==&quo

  • PHP文件上传判断file是否己选择上传文件的方法

    本文实例讲述了PHP文件上传判断file是否己选择上传文件的方法.分享给大家供大家参考.具体方法如下: 一个合格的程序员在实现数据入库中时我们都会有一些非常严密的过滤与数据规则,像我们文件上传时在前段要判断用户是否选择上传文件同时在后台也可判断是否有上传的文件,本文实例即对此做一较为深入的分析. 如下html代码所示: 复制代码 代码如下: <form action="?" method="post" enctype='multipart/form-data'

  • php禁止直接从浏览器输入地址访问.php文件的方法

    本文实例讲述了php禁止直接从浏览器输入地址访问.php文件的方法.分享给大家供大家参考.具体实现方法如下: 一般来说对于有些重要的文件我们并不希望用户可以直接输入地址进行访问,对此我们需要进行一些设置.下面总结了一些php禁止直接从浏览器输入地址访问.PHP文件方法,非常实用. 比如说http://www.jb51.net/xx.php 这个文件我不想让别人直接从浏览器输入地址访问. 但是如果从任何网站连接http://www.jb51.net/xx.php过来不可以访问的话,本机建立连接也无

  • 禁止JQuery中的load方法装载IE缓存中文件的方法

    使用方法如下: 复制代码 代码如下: $("#panel").load("test.asp"); //在页面装载时,在ID为#panel的DOM元素里test.asp的内容. 但是,当你修改test.asp文件的内容以后,在IE浏览器下,再利用以上方法重新装载该文件时,你会发现ID为#panel的DOM元素的内容并未发生变化,问题究竟出现在什么地方呢?原来是重新加载以后,IE浏览器并没有从服务器端重新下载修改以后的test.asp,而是直接从IE缓存中读取没有修改之

  • Python文件循环写入行时防止覆盖的解决方法

    存在问题: 利用写入代码 with open(r'F:\PythonFiles\PycharmFile\ssq.csv', 'w', encoding='utf-8-sig', newline='') as csvFile: csv.writer(csvFile).writerow([col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col11]) # 给csv文件中插入一行 向CSV文件中循环写入行时,后面的数据总是把前面的数据覆盖掉 解决方

  • Python判断对象是否为文件对象(file object)的三种方法示例

    文件操作是开发中经常遇到的场景,那么如何判断一个对象是文件对象呢?下面我们总结了3种常见的方法. 方法1:比较类型 第一种方法,就是判断对象的type是否为file >>> fp = open(r"/tmp/pythontab.com") >>> type(fp) <type 'file'> >>> type(fp) == file True 注意:该方法对于从file继承而来的子类不适用, 看下面的实例 class f

  • vue中实现图片压缩 file文件的方法

    项目中遇到上传图片需要在前端进行图片压缩,将我的实现思路记录一下.(我已经拿到上传的file文件的前提下) 先创建一个公用的js,这里我的是api.js,里面封装一些常用的方法 将图片压缩的方法写到这个公用的js(api.js)中 //base64转码(压缩完成后的图片为base64编码,这个方法可以将base64编码转回file文件) function dataURLtoFile(dataurl) { var arr = dataurl.split(','), mime = arr[0].ma

随机推荐