0
如果我有一個目錄滿文本文件,如批次:返回文件名以最高整數
01.text.sql
02text.sql
3text.sql
我將如何以最高的整數返回文件名字,例如: 3.text.sql?正如你所看到的,這些數字可能不會以0爲前綴並且可能缺少一個。之後的整數。我知道我必須遍歷目錄像這樣的東西
Choose Highest Numbered File - Batch File
然而,這並沒有考慮到不同的文件名格式。有沒有什麼方法批處理腳本可以遍歷一個目錄,並自動拉最高的整數文件,或者我必須存儲文件名,並將它們彼此比較在一個單獨的循環?
目前,我有這樣的事情,但它不是隻返回3
SETLOCAL enabledelayedexpansion
SET max=0
FOR %%x in (*.sql) DO (
SET "FN=%%~nx"
SET "FN=!FN:*-=!"
IF !FN! GTR !max! SET max=!FN!
)
ECHO Highest script number is %max%
更新循環的3text:
SETLOCAL enabledelayedexpansion
SET scriptmax=0
FOR %%x in (*.sql) DO (
SET "FN=%%~nx"
SET a=1000!FN!
SET /A FN=a %% 1000
IF !FN! GTR !max! SET max=!FN!
)
如果分裂出去以前前綴數字'1',而不是減去'100'那麼你不需要知道有多少位有總共... – aschipfl
@aschipfl:怎麼樣?我試圖想出一個辦法,但%a:〜1%再次讓我再次登錄09? – ths
剩餘的前導零可以用下面的代碼去除:「for/F」tokens = * delims = 0「%% Z in(」%FN:〜1%「)do set」FN = %% Z「&set/A」 FN + = 0" ';但似乎你發現了一個更簡單的解決方案... – aschipfl