【发布时间】: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
我有一个脚本可以删除文件夹内的 0 个大小的 txt 文件,但是当我尝试运行它时,它也会删除子文件夹中的 0 个大小的文件。 这是脚本
for /r "\filepath" %F in (*.txt) do @if %~zF==0 del "%F"
如何删除文件而不删除子文件夹中的其他文件?
【问题讨论】:
for /R呢?
标签: batch-file
for %F in ("ilepath*.txt") do @if %~zF==0 del "%F"
/r 强制扫描树。
【讨论】:
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(因为它递归处理所有文件夹和子文件夹)。
【讨论】: