Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 用于删除空.dat文件的批处理脚本_Batch File_Cmd - Fatal编程技术网

Batch file 用于删除空.dat文件的批处理脚本

Batch file 用于删除空.dat文件的批处理脚本,batch-file,cmd,Batch File,Cmd,我需要删除文件大小为0的所有.dat扩展名文件。我已经开发了以下批处理脚本,但效果不好。你能帮我把这件事弄清楚吗 @ECHO OFF SET OLD_ZIPS=C:\Users\dkbdodanwala\Desktop\s\*.dat :deleteFiles for /f "tokens=1* delims=;" %%A in ("%OLD_ZIPS%") do ( if exist "%%A" if %%~zA==0 ( DEL "%%A" ) set O

我需要删除文件大小为0的所有.dat扩展名文件。我已经开发了以下批处理脚本,但效果不好。你能帮我把这件事弄清楚吗

@ECHO OFF
SET OLD_ZIPS=C:\Users\dkbdodanwala\Desktop\s\*.dat


:deleteFiles
for /f "tokens=1* delims=;" %%A in ("%OLD_ZIPS%") do (
    if exist "%%A" if %%~zA==0 (
    DEL "%%A"
    )
    set OLD_ZIPS=%%B
)

如果改用
WMIC
,您甚至不需要
For
循环:

WMIC数据文件,其中“Drive='C:'和Path='\\Users\\dkbodanwala\\Desktop\\s\\'和扩展名='dat'和FileSize='0')调用Delete

您的代码有点让人困惑。看起来您正试图获取.dat文件的目录列表,但使用
FOR/F
命令无法获取。您需要在
FOR/F
命令中使用
DIR
命令。我也不明白为什么要用分号作为分隔符。你是说你的文件名中有分号吗?对不起,我的错。使用此脚本,我可以删除扩展名为.dat的所有空文件,但当有非空文件脚本不起作用时。没有理由使用
for/F
循环,您只需要一个标准
for
循环:
for%%a in(“C:\Users\dkbodanwala\Desktop\s\*.dat”)do if%%~zA eq 0 del%%~a
您的代码不会检查所有.dat文件是否为0字节。它只检查文件夹中的第一个.dat文件是否为0字节,然后全局删除所有.dat文件。使用变量%%B的
SET
命令在代码中仍然没有意义。@ECHO OFF SET OLD_ZIPS=C:\Users\dkbodanwala\Desktop\s*.dat for%%A in(“%OLD_ZIPS%”)如果%%zA eq 0 del%%A想出了这一个,请执行。这是正确的吗?非常感谢你的帮助。