Batch file 如何使用windows批处理脚本从文本文件中删除内容

Batch file 如何使用windows批处理脚本从文本文件中删除内容,batch-file,Batch File,我有一个demo.txt文件。我需要使用批处理文件删除该文件中的内容。请告诉我删除demo.txt文件内容的命令 break>demo.txt 尝试此操作。它将在demo.txt位置设置一个空文件。由于break是一个不执行任何操作的内部命令,因此它应该非常快。而且break命令只能使用/?参数生成输出,因此此方法非常健壮。命令提示符: break>c:\'file directory'\demo.txt PowerShell: 清除内容c:\'file directory'\demo.

我有一个demo.txt文件。我需要使用批处理文件删除该文件中的内容。请告诉我删除demo.txt文件内容的命令

break>demo.txt
尝试此操作。它将在demo.txt位置设置一个空文件。由于
break
是一个不执行任何操作的内部命令,因此它应该非常快。而且break命令只能使用
/?
参数生成输出,因此此方法非常健壮。

命令提示符:

  • break>c:\'file directory'\demo.txt
  • PowerShell:

  • 清除内容c:\'file directory'\demo.txt
  • 在JPSoft的TakeCommand TCC.EXE命令shell中工作,也可以工作(其中“break”将输出“break is ON”,而不是像在Microsoft CMD.EXE中那样什么都不输出)


    一般的想法是找到一个不输出任何内容的命令,并使用>

    将其重定向到文件。这对我来说似乎是最直观的:

    copy /y nul demo.txt
    

    注意:不幸的是,与这里提供的其他方法一样,如果demo.txt当前正由另一个进程使用,则此操作将失败。在这种情况下,有时可以在文本编辑器中打开文件并删除所有内容,即使文件正在使用。我不知道从命令行执行此操作的方法。

    如果文件被另一个应用程序使用,命令提示符重定向可能会失败(因为它需要更多的文件访问权限)。在这种情况下,您可以使用powershell:

    PS> Set-Content file.txt $null
    

    注意:不要期望它将允许访问以独占方式打开的文件。

    是否要清除demo.txt中的内容,还是只想删除文件中的特定文本?注意,请确保指定确切的文件,否则,如果指向错误的文件,您可能无法恢复内容,除非您有备份或在运行脚本之前创建了备份。这根本不起作用。它已复制了
    1个文件。
    到文件中。它应显示输出“复制了1个文件”,但生成的文件长度应为0。对我有用,我刚查过。确保您没有重定向输出。您是对的-我正在重定向它。我再次尝试使用你的方法(正确),它成功了。非常有创意的解决方案。谢天谢地,这很有效,但似乎比“Break>”命令花费的时间更长。知道为什么吗?谢谢你添加了PowerShell命令!当进程正在使用文件时,CMD的
    break>
    不起作用。由于当时我无法结束该过程,也无法在记事本++中打开它以手动清空它,因为文件太大,PowerShell的
    清晰内容
    非常方便,效果非常好,谢谢!
    PS> Set-Content file.txt $null