2
我必須編寫一個腳本,將文件複製到備份文件夾。如果文件名已被佔用,它將粘貼在索引上。我似乎無法得到它的工作。變量tmpfile似乎永遠不會攜帶索引計數器。我究竟做錯了什麼?腳本如下。Windows批處理腳本找到免費文件名
感謝, 肖恩
set srcdir=%~dp0
set oldxladir=%srcdir%OldXLAs
if not exist %oldxladir% mkdir %oldxladir%
set pathstart=C:\Documents and Settings\
set username=%USERNAME%
set pathend=\Application Data\Microsoft\Excel\XLSTART\
set pattern=groovy*.xla
set xladir=%pathstart%%username%%pathend%
set xlapattern="%pathstart%%username%%pathend%%pattern%"
for %%f in (%xlapattern%) do (
set filename=%%~nxf
set srcfile=%xladir%%filename%
set destfile=%oldxladir%\%filename%
set tmpfile=%destfile%
set /a index=1
:loop
if exist tmpfile (
set /a index+=1
echo %index%
set tmpfile=%destfile%%index%
goto :loop
)
echo %tmpfile%
move "%srcfile%" "%tmpfile%"
)
檢查'SETLOCAL ENABLEDELAYEDEXPANSION'。 –
我可以看到這將如何有用,但不幸的是它沒有幫助。我將echo%index%更改爲echo!index!但那會輸出!索引!與驚歎號。我肯定錯過了什麼。 –
你需要明確聲明'SETLOCAL ENABLEDELAYEDEXPANSION'(見LS_dev的答案) – SvenS