2016-10-12 6 views
2

config#.jsonと呼ばれる設定ファイルがいっぱいのフォルダがあります。#は2桁の15進数です。ファイルの1つを選択してその名前を変数に入れる方法が必要です
私はこれについてしばらく考えていましたが、高度なバッチプログラマーではありません。 dirコマンドの結果を使用する方法があります。たとえば、8行目などの最後のエントリを取得した場合などです。私はそれを簡単にするかもしれない名前のスペースを取り除くことができます:バッチ:ディレクトリからトップファイルを選択してください

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最初の日付による、最後の日付によるを見つけるために/o:dを追加することにより、dirコマンドを変更し、 /o:n、最後に名前を見つけるには/o:-n first-by-name - その他のオプションがあります - プロンプトから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% 

基本的には、for /flastone両端にコマンドの出力の各ラインを処理し、名前順(/on)を降順でファイルの裸(/b)ディレクトリリスティング(dir)(/a-d)を取得していますまあ、最後のものに設定されています。

関連する問題