2

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

请提出解决方案。

4

1 回答 1

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

于 2013-11-05T17:38:37.183 回答