我正在尝试检查c:\ temp1目录中是否有任何带* .del扩展名的文件。如果找到,我需要在同一个x目录中将这些文件重命名为.done,并删除y目录中的同一文件,但是它们的扩展名为.gz,请提示。我正在使用下面的脚本,但是当我运行它时,它表示找不到文件。
Inputfilename : 20130216.001_visual_sciences_web_feed.out.del
Renamedfilename: 20130216.001_visual_sciences_web_feed.out.done
Filetobedeleted: 20130216.001_visual_sciences_web_feed.out.gz
剧本:
@echo off
set "dir=c:\raja\temp1"
set "ext=del"
set "rename=.done"
for /f "delims=" %%a in ('dir /b /a-d /s "%dir%\*.%extension%"^|sort /r') do (
echo FILE: %%~fa
call :rename "%%~fa"
)
pause
goto :eof
请提出解决方案。
答案 0 :(得分:2)
for %%a in ("c:\raja\temp1\*.del") do (
ren "%%~fa" *.done >nul
if exist "c:\temp2\%%~na.gz" del "c:\temp2\%%~na.gz" >nul
)
对于源代码中包含.del扩展名的每个文件,重命名为.done,如果存在具有相同名称和.gz扩展名的文件(在temp2中,来自注释),请将其删除