【问题标题】:How to write a windows batch file which erase all contents in a text file(s) leaving nothing?如何编写一个 Windows 批处理文件来擦除文本文件中的所有内容而不留下任何内容?
【发布时间】:2018-03-01 03:27:15
【问题描述】:

service_ccsl.txt 内有 11 个 Web 服务在我完成使这个文本文件更方便而不是手动删除的工作后,我想将此作业集成到 Jenkins 任务中。请给我一个方法。提前致谢。

【问题讨论】:

标签: batch-file jenkins jenkins-plugins


【解决方案1】:

可能是最简单的方法:

type nul > service_ccsl.txt

break > service_ccsl.txt

echo. 2> service_ccsl.txt

for 循环:

@echo off
for %%f in (c:\test\*_ccsl.*) do echo type nul > %%f

上面的示例将遍历 C:\test 中的所有文件并查找包含 _ccsl. 的任何内容,因此它将匹配 service_ccsl.txt test_ccsl.txt anything_ccsl.exe 但它不会匹配 service_ccsl_all.txt 例如。

您可以使用通配符来微调您的场景,一旦您对自己感到满意,然后从上面的代码中删除 echo 部分。

这将为所有以_all.txt结尾的文件设置只读属性 然后我们将文件归零,_all.txt 文件的访问将被拒绝,其余的将被归零,然后我们禁用只读属性。

@echo off
attrib +r "c:\test\*_all.txt"
for %%f in (c:\test\service*.txt) do type nul > %%f
attrib -r "c:\test\*_all.txt"

注意,如果你回显这个,它仍然会回显 all.txt 文件,因为它们仍然可读,但 nul 不会影响这些文件。

【讨论】:

  • 干杯巴纳德,这工作得很好。 @echo off null>"C:\Users\IBM_ADMIN\Desktop\New folder (2)\service_td.txt" 如果我​​想一次删除 11 个 service_.txt 文件,请暂停。这可能通过一个批处理文件吗?我有 11 个职能组,我将根据要求同时与不同的职能组合作。我将根据需要更新 service_.txt 文件。是否有可能有一个通用的批处理文件来清除所有文本文件的内容,尽管我更新了它们?仅供参考,我有两个 service__all.txt 和 service_.txt 文件,稍后清理。
  • 是的,你只需要运行一个 for 循环。所有文件都在 1 个目录中吗?该目录下还有其他文件吗?
  • 有3个文件夹,几个XSD文件,ant文件,JAR文件和XML文件。这个文件夹是一个组合。
  • 那么这些文件夹中的所有 TXT 文件您要取消吗?
  • 是的,伯纳德举个例子:我想将 service_ccsl.txt 文件设为空,而不是 service_ccsl_all.txt。所以,我总共有 11 个这样的功能组,ccsl、td、fx、gl 等。是否有机会应用它选择 service_ccsl.txt 文件而不是 service_ccsl_all.txt 文件的条件。
【解决方案2】:

您可以使用break 使用批处理脚本擦除文件的所有内容。

break>\path\to\service_ccsl.txt

您可以在 Jenkins 工作的Build 部分的Execute windows batch script 步骤中添加上述命令。

【讨论】:

  • 如果我想一次删除 11 个 service_.txt 文件,请为 ANIL 提供信息。这可能通过一个批处理文件吗?我有 11 个职能组,我将根据要求同时与不同的职能组合作。我将根据需要更新 service_.txt 文件。是否有可能有一个通用的批处理文件来清除所有文本文件的内容,尽管我更新了它们?仅供参考,我有两个 service__all.txt 和 service_.txt 文件,我想稍后清理。
猜你喜欢
  • 1970-01-01
  • 2016-09-10
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2015-05-09
  • 2016-03-07
  • 1970-01-01
  • 2018-05-13
相关资源
最近更新 更多