2014-07-16 126 views
1

參考increment folder name link,我想問如何將其從創建文件夾更改爲創建文本文件?如何使用批處理腳本增加文本文件名

下面的代碼的編輯版本:

@echo off 
@For /F "tokens=1,2,3 delims=/ " %%A in ('Date /t') do @( 
    Set Day=%%A 
    Set Month=%%B 
    Set Year=%%C 
) 

@echo off 
setlocal enableDelayedExpansion 
set "baseName=testing-%Year%%Month%%Day%-" 
set "n=0" 
for /f "delims=" %%F in (
    '2^>nul dir /b /ad "%baseName%*."^|findstr /xri "%baseName%[0-9]*"' 
) do (
    set "name=%%F" 
    set "name=!name:*%baseName%=!" 
    if !name! gtr !n! set "n=!name!" 
) 
set /a n+=1 
md "%baseName%%n%" 

所以它的工作原理是這樣的。通過雙擊該批處理文件可以創建「Hello-20140716-1」,「Hello-20140716-2」等文件夾。但是,我怎樣才能將它從文件夾更改爲文本文件?

我試圖改變md "%baseName%%n%"Echo "Hello" > %baseName%%n%.txtEcho "Bye" > %baseName%%n%".txt

但是,這並不工作,因爲它只會輸出「再見」爲你好,20140716-1.txt,而無需創建「你好」來打招呼,20140716-1.txt和「再見」爲hello-20140716-2.txt

回答

2

測試此:

@echo off 
For /F "tokens=1,2,3 delims=/ " %%A in ('Date /t') do @( 
    Set Day=%%A 
    Set Month=%%B 
    Set Year=%%C 
) 

set "baseName=testing-%Year%%Month%%Day%-" 
set "n=0" 
:loop 
set /a n+=1 
if exist "%baseName%%n%.txt" goto :loop 
type nul > "%baseName%%n%.txt" 
echo "%baseName%%n%.txt" was created 
pause 
+0

OMG! !感謝foxidrive !!!非常感謝!!! :d – Linify

2

問題是關於「使用批處理腳本增量文本文件名」,所以我ð刪除了文件名中的時間戳,然後遞增名稱。

這裏是我的腳本:

@echo off 
echo. 
setlocal 

set N=0 
set FILENAME=baseFileName.%N%.anyExtension 
:loop 
set /a N+=1 
set FILENAME=baseFileName.%N%.anyExtension 
if exist %FILENAME% goto :loop 

echo You can safely use this name %FILENAME% to create a new file 

endlocal 

信用:

我創造了我自己的味道基礎上@foxidrive的回答,這意味着99%歸功於她/他

相關問題