【发布时间】:2014-09-13 11:31:46
【问题描述】:
我一直在努力创建一个批处理文件,它将文件从一个目录移动到另一个目录,如果文件名已经存在,请重命名它然后将其移动。
我对创建批处理文件真的很陌生,所以这就是我目前所拥有的
set temp=C:\Users\Daniel\Desktop\a\a1
set dir=C:\Users\Daniel\Desktop\a\
set /a "counter=0"
set "duplicate=-copy^("
set "bracket=^)"
if exist "%temp%" ( ^
for %%i in (%temp%\*) ^
do ^
if exist "%dir%\%%~ni%%~xi" ( call :checkFileName %%~ni %%~xi) ^
ELSE ( move %temp%\%%~ni%%~xi %dir% ) )^
ELSE ( echo doesnt exist)
:checkFileName
echo test
set fileName=%1
set fileExtenstion=%2
set /a "counter+=1
rem Do whatever you want here over the files of this subdir, for example:
if exist %dir%%fileName%%duplicate%%counter%%bracket%%fileExtenstion% ( IF defined %1 (
IF defined %2 (call :checkFileName %1 %2 )) ) ELSE (ren %temp%\%fileName%%fileExtenstion% %fileName%%duplicate%%counter%%bracket%%fileExtenstion% )
timeout 30
goto :eof
:increment
set /a "counter+=1"
goto :eof
我不知道在调用我的 checkFileName 函数之前增加一个 var。我认为递归调用相同的函数是正确的想法,但我对命令/语法有点生疏,因为我是在星期五才开始的。
任何建议或指示将不胜感激。 (如果您知道任何值得一看的有用链接/书籍,请告诉我!)
超时 600
【问题讨论】:
-
您是在处理单个文件夹还是文件夹树?进行什么样的重命名有关系吗?
标签: windows batch-file