【问题标题】:How to clear contents of file with batch script如何使用批处理脚本清除文件内容
【发布时间】:2018-05-27 10:33:03
【问题描述】:

我有一个带有小聊天应用程序的自托管本地网站(在 W10 上)。聊天记录保存到log.html 文件中,我想用批处理脚本将其清除。
我知道在 Ubuntu Shell 上,它就像 > log.html 一样简单,但在 Windows 上,这不起作用。
我还找到了nul > log.html,但它说访问被拒绝
我也不想使用 powershell 脚本,因为我必须更改执行规则,这需要将近一分钟。

所以,我的问题是:
有没有办法可以空log.html 的批处理脚本不会保持打开超过 20 秒?
或者,我不介意是否有办法每天使用 php-related 来清除它。如果有帮助,我将在 Windows 10v1803 上使用 IIS。

【问题讨论】:

  • copy /Y nul log.html

标签: php windows batch-file iis iis-7.5


【解决方案1】:

我想你想要的是:

TYPE NUL > log.html

…或作为可能的替代方案:

BREAK>log.html

 

CLS 2>log.html

 

CD.>log.html

从技术上讲,他们并没有清空文件,而是在编写一个覆盖现有文件的新文件。

【讨论】:

  • 我使用cd . > file.txt 创建一个空文件,因为它不使用任何“深奥”功能,例如break 命令或nul 设备:每个人都知道cd . 做了什么(并且它不显示任何结果)。这也有效:rem/ > file.txt
  • @Aacini,我在我的答案中添加了CD 版本,因为它很短,而且如你所说,易于理解。
【解决方案2】:

这将删除文件并重新创建它,然后立即关闭,这几乎就是您想要的。将"Desktop" 替换为文件的文件路径,并将此.bat 与您的log.html 放在同一文件夹中:

@echo off
cd "Desktop"
del "log.html"
echo. 2>log.html

【讨论】:

  • 由于您使用简单的重定向>,del 命令是多余的。还有cd "Desktop" 不知道文件的位置并作为相对参考。否则使用空的错误输出流创建一个零字节文件是聪明的+1。
猜你喜欢
  • 1970-01-01
  • 2011-10-20
  • 2018-06-23
  • 2013-07-30
  • 2021-11-14
  • 2020-12-06
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
相关资源
最近更新 更多