2012-05-10 15 views
0

私はいくつかの同様の質問を見ましたが、私が望むものを一緒にまとめることができました。 、\始めるので、私は戻ってフルパス名を取得する必要があります:バッチ:ディレクトリ内の最新のバッチファイルを呼び出す

for /f "delims=" %%x in ('dir /od /b c:\maps\*.bat') do set recent=%%x 
echo %recent% 

しかし、たとえば、これはである含まれているバッチファイル、C:それは私の最も最近のバッチファイルの名前を与えるので、これは近くにありましたファイル名だけではありません。次に、「呼び出し」を使用してバッチファイルを実行できます。

(私はincidently、XP上でこれをやっている。)

+0

? ? – Vicky

答えて

1

あなたは

for /f "delims=" %%x in ('dir /od /b c:\maps\*.bat') do set recent=%%x 

を使用する場合は積極的にファイルのフルパスがc:\maps\%%x


になることを知っています代わりにdir /sを使用する場合は、既存のすべてのサブディレクトリを反復処理します

for /f "delims=" %%x in ('dir /od /b /s c:\maps\*.bat') do set recent=%%x 

しかし、完全なパスを返す興味深い副作用では、それは%%xになります。

+0

素晴らしい!私は自分のスクリプトに2番目の方法を使用すると思います。 – eflat

0

は、使用しよう:

for /f "delims=" %%x in ('dir /od /b /s c:\maps\*.bat') do set recent=%%x 
echo %recent% 
0

これは、パフォーマンスの低下を持っていた/秒、より私にとってより良い働いた:あなたは `dir`コマンドを実行したときからのパスを知っている必要があります

for /f "delims=" %%x in ('dir /od /b c:\maps\*.bat') do set recent=%%~fx 
関連する問題