【问题标题】:Script to delete file 0 size in folder but not in subfolder删除文件夹中文件 0 大小但不在子文件夹中的脚本
【发布时间】:2022-10-16 00:31:48
【问题描述】:

我有一个脚本可以删除文件夹内的 0 个大小的 txt 文件,但是当我尝试运行它时,它也会删除子文件夹中的 0 个大小的文件。 这是脚本

for /r "\filepath" %F in (*.txt) do @if %~zF==0 del "%F"

如何删除文件而不删除子文件夹中的其他文件?

【问题讨论】:

  • 那么,你为什么要使用for /R呢?

标签: batch-file


【解决方案1】:
for %F in ("ilepath*.txt") do @if %~zF==0 del "%F"

/r 强制扫描树。

【讨论】:

    【解决方案2】:
    for files in `ls *.txt`
    do
      if [ -s $files ]; then
        echo "$files is not empty"
      else
        rm -f $files
      fi
    done
    

    -s $files 如果变量 $files 中的文件以非零大小存在,则表达式将为 True。因此,如果文件为空,则将激活 else 语句。这里给定 for 循环正在传递当前目录中文件的名称,它假设文件存在并且需要进行的唯一检查是它是否为空。此外,鉴于 ls *.txt 将仅列出当前目录的文件,它不会处理任何子文件夹。

    在你的脚本中,跳过 /r(因为它递归处理所有文件夹和子文件夹)。

    【讨论】:

      猜你喜欢
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多