用于重命名和删除文件的批处理程序

时间:2013-11-05 17:25:34

标签: windows batch-file

我正在尝试检查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

请提出解决方案。

1 个答案:

答案 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中,来自注释),请将其删除