0
我試圖做幾乎相同的內容:How do I increment a folder name using Windows batch?遞增與批處理文件的文件版本號
從本質上講,我想創建一個批處理文件可以通過目錄進行掃描,確定最高版本號,然後創建下一個順序。所以如果目錄包含:
New folder V1.0
New folder V1.1
New folder V1.3
我想要批處理文件添加一個新文件夾V1.4。應該可行。問題是,劇本,我發現:
@echo off
setlocal enableDelayedExpansion
set "baseName=New_Folder"
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%"
不使用文件夾名稱中帶有IE它與「New_Folder」而非「新建文件夾」的空間工作。我試着逃避的空間使用的各種排列^和」,例如,
set "baseName=New^ Folder"
set "baseName=New" "Folder"
set "baseName=New""^ ""Folder"
等等,但是,我還沒有得到它的工作。
我知道,我可以通過改變我的文件名使用下劃線解決問題,但在這一點上,我想知道爲什麼它不工作,如何解決它。
...好的,那是有效的。 *它是如何工作的?不/ c指定一個文字字符串? – Firnagzen
+1;這很好! – Endoro
/c沒有指定文字字符串,它指定了搜索詞。在這種情況下,它是/ r告訴findstr/c參數中的文本應該被視爲正則表達式。 – Mark