ディレクトリ内の最新のサブフォルダーを取得するにはどうすればよいですか?
私はそれをMKLINK /D
指揮する必要があります。
ありがとう
FOR /F "delims=" %%i IN ('dir /b /ad-h /t:c /od') DO SET a=%%i
echo Most recent subfolder: %a%
( %i
Windows 10 の場合)
/b
ベアフォーマット用です/ad-h
ディレクトリのみ、非表示のディレクトリは除くt:c
ソートに作成日を使用することを意味します (t:w
最終書き込み日に使用)/od
古いものから順に並べ替えるfor /F
コマンドを実行し、ディレクトリ名に a を設定します。最後のものが最新のものです。これを (バッチ ファイルではなく) コマンド ラインで直接実行する場合は、%
代わりに%%
.
これは現在のディレクトリで機能します-@iesouが指摘したようにdir
、他のディレクトリパスを使用する必要がある場合は、後でディレクトリパスを追加する必要があります。
ディレクトリ パスを指定した例:
FOR /F "delims=" %%i IN ('dir "c:\Program Files" /b /ad-h /t:c /od') DO SET a=%%i
すべてのサブフォルダーを通過しないようにするには、並べ替え順序を変更して最新のもの ( /o-d
) を最初に呼び出し、最初の呼び出しの後に for ループを終了します。
@echo off
FOR /F "delims=" %%i IN ('dir /b /ad-h /t:c /o-d') DO (
SET a=%%i
GOTO :found
)
echo No subfolder found
goto :eof
:found
echo Most recent subfolder: %a%
スペースを含むディレクトリ名の改善
FOR /F " tokens=*" %%i IN ('dir /b /ad-h /od') DO (SET a=%%i)
a=Application の代わりに a=Application Data を取得するようになりました
注: 「トークン」の前のスペースに注意してください