我试图找出一种方法让批处理脚本覆盖特定目录及其子文件夹中非零字节文件的每个实例。我猜,因为我正在寻找一个非零文件,如果它找不到任何非零大小的文件,我可能会用转义符循环它?
例如,覆盖每个非零文件大小的 example.txt 实例:
D:\
\---SubFolder1
| example.txt <10 bytes>
|
\---Subfolder2
| example.txt <0 bytes>
|
\---Subsubfolder1
example.txt <20 bytes>
在示例中,D:\Subfolder1\example.txt 和 D:\Subfolder2\Subsubfolder1\example.txt 将被覆盖,但 D:\Subfolder2\example.txt 不会更改。
感谢@NiKiZe 的所有帮助!
工作代码:
@ECHO 关闭
设置 DPATH=%~dp0
FOR /R "%DPATH%" %%F IN ( *** 见下文) 如果 %%~zF
GTRNEQ 0 CALL :NonEmptyFile "%%~F"
GOTO :EOF:NonEmptyFile
ECHO 得到非空文件: %1
呼叫:EOF
*** 替换为您要替换的文件名,确保在某处使用单个字符通配符(我在扩展名中使用了它 - 例如,如果我正在搜索 example.txt,我将 * 替换为 example.t ?t)