1

私はDOSのいくつかを知っています。簡単なことはできますが、サブフォルダーのあるフォルダーで最近のファイルを検索するための何かを見つけたり作成したりできませんでした。

dir *.mp3 /b /o:d /s /t:c > Listing.txt

これは正常に機能しますが、1 つの問題があり、全体としてのリストではなく、各フォルダーの最近のフォルダーが一覧表示されます。日付で検索した場合のウィンドウのように、すべての最近のファイルのリストが必要です。

music  \Josh
       \Rafael

私が持っているスクリプトは必要なことを行いますが、全体としてではなく、各フォルダーの最新ファイルを次々に提供するので、次のように言いましょう。

Music\file 1.mp3
Music\file 2.mp3
Music\Josh\file24.mp3
Music\Josh\file50.mp3
Music\Rafael\test1.mp3
Music\Rafael\test56.mp3

私が望むのは、フォルダに関係なく最近のファイルになることです。

file 1.mp3
file24.mp3
test1.mp3
file 2.mp3
file50.mp3
test56.mp3

ラファエル

4

2 に答える 2

1

これを試して

For /r %I in (*.mp3) do @echo %~nxI

結果に日付を含めるには、これを行います

For /r %I in (*.mp3) do @echo %~nxtI

さまざまな修飾子については、このURLを参照してください

于 2013-02-05T02:27:01.253 に答える
0

日付と時刻で並べ替えられたファイルが必要な場合は、次のようなバッチ ファイルを使用できます。

@echo off
setlocal
for /f "tokens=1,2,3,4,*" %%f in ('dir /s') do call :eachfile %%f %%g %%h "%%i" "%%j"
exit /b

:eachfile
set dt=%1
set tm=%2
if "%dt%"=="Directory" exit /b
if "%dt%"=="Volume" exit /b
if "%tm%"=="File(s)" exit /b
if "%tm%"=="Dir(s)" exit /b
if "%dt%"=="Total" exit /b
if "%~4"=="<DIR>" exit /b
echo %dt:~6,4%/%dt:~0,5% %3 %tm% %~5
exit /b

それを例に保存するとdirflat.bat、実行できます

dirflat | sort

ファイルのリストを順番に取得します。米国にいない場合は、バッチ ファイルの最後から 2 行目を調整して、ディレクトリ リストを正しく切り刻む必要があるかもしれません。私にとっては、次のようになります。

06/14/2011 10:40 AM "209,920" "sed.exe"

の中へ

2011/06/14 AM 10:40 sed.exe

簡単に並べ替えることができます。次に、出力を別のステージに送信して、文字列の先頭から時間を取り除くことができます。

于 2013-02-05T02:24:25.267 に答える