2016-03-28 10 views
0

cmdウィンドウを使用して、現在のディレクトリの各フォルダにある最新のファイルの名前を取得するにはどうすればよいですか?CMDウィンドウを使用して、現在のディレクトリの各フォルダの最新のファイル名を取得します。

私はこれがコマンドの多段階プロセスか、私の現在の知識を超えた1ライナーのいずれかであると感じます。

私は、 dir /b /o:n /ad > folderlist.txtのようなコマンドラインからの "one off"コマンドの使用に慣れているので、もっと複雑なコマンドラインタスクを行うことについては参考になります。

答えて

0

ディレクトリのリストと各ディレクトリ内のファイルのリストを繰り返し処理できる必要があります。これは、FORループを使用して行うことができます。詳細は、FOR /?を参照してください。

@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 

PUSHD "C:\the directory\of interest" 

FOR /F "usebackq tokens=*" %%d IN (`DIR /B /A:D .`) DO (
    DIR /B /A:-D %%d >NUL 2>&1 
    IF !ERRORLEVEL! EQU 0 (
     FOR /F "usebackq tokens=*" %%f IN (`DIR /B /A:-D /O:D %%d`) DO (
      SET LASTFILE=%%f 
     ) 
     ECHO %%d\!LASTFILE! 
    ) 
) 

POPD 
+0

ありがとうございます。それは親ディレクトリにある限り動作します。 – jpantina

+0

質問は "現在のディレクトリ"だから私は額面でそれを取った。これが答えであれば、そのようにマークしてください。ありがとう。 – lit

+0

私は親ディレクトリのパスを設定することで動作させるために何を追加しなければならないのかという質問があるので、バッチファイルを別のフォルダに保存することができます。以来、 "。"バッチファイルのディレクトリを一覧表示し、 "/ B"を使用するとフルパス参照ではなくフォルダ/ファイル名のみを使用するため、使用したくないフォルダのフルパスで置き換えます。 (バッチでどのように連結するのかが少し分かりません;実際に知っているプログラミング言語を使用することができない仕事用コンピュータだとしたら) – jpantina

関連する問題