2016-10-12 80 views
2

我有一個文件夾充滿了配置文件,名爲config#.json,其中#是一個2位數的基數爲15的數字。我需要一些方法來選擇其中一個文件,並將其名稱放在一個變量中
我一直在想這個問題,但我不是一個非常高級的批處理程序員。例如,如果我從第8行獲得最後一個條目或其他東西,可能有一種方法是使用dir命令的結果。我可以擺脫名稱中的空間,這可能會更容易:批處理:從目錄中選擇頂級文件

Volume in drive C is Local Disk 
Volume Serial Number is 1A97-93E9 

Directory of C:\Users\hazzj\Google Drive\Home\Stuff\Apache-Server\htdocs\launcher_profiles 

12/10/2016 05:44 PM <DIR>   . 
12/10/2016 05:44 PM <DIR>   .. 
12/10/2016 05:44 PM    707 config 11.json <- this bit here 
12/10/2016 05:44 PM    707 config 12.json 
12/10/2016 05:44 PM    707 config 13.json 
12/10/2016 05:44 PM    707 config 14.json 
12/10/2016 05:44 PM    707 config 15.json 
12/10/2016 05:44 PM    707 config 16.json 
12/10/2016 05:44 PM    707 config 17.json 
12/10/2016 05:44 PM    707 config 18.json 
12/10/2016 05:44 PM    707 config 19.json 
     204 File(s)  144,228 bytes 
      2 Dir(s) 344,802,287,616 bytes free 

任何幫助,我將不勝感激。

+1

[批處理腳本從目錄獲取第一個文件名]的可能副本(http://stackoverflow.com/questions/11882993/batch-script-to-get-first-filename-from-a-directory) –

回答

1
for /f "delims=" %%a in ('dir /b /a-d "yourdirectoryname" ') do set "filename=%%a" 

是標準的方法來獲取文件名 - 如果你想在目錄中的最後

加入/o:d修改dir命令找到最後按日期,/o:-d首先按日期, /o:n找到最後一個名字,/o:-n名字 - 還有其他選項 - 請參閱提示中的dir /?

for /f "delims=" %%a in ('dir /b /a-d /o-n "yourdirectoryname" ') do set "filename=%%a" 

(還有其他方法)

1

這可能是最簡單的答案。

@echo off 
for /f "delims=" %%a in ('dir /b /a-d /on config*.json') do set lastone=%%a 
echo %lastone% 

基本上,你得到的裸(/b)目錄中的文件列表(dir)(/a-d)降序名稱順序(/on),處理命令的輸出中的每行for /flastone結束呃,最後一個。

相關問題