3

バッチファイル内に次のものがあります。

for /D %%A IN (*) DO echo %%A>> output.txt

これからの結果をアルファベット順にしたいのですが、代わりに日付順に並べられているようです。

これを達成する方法を誰かが提案できますか?

4

2 に答える 2

4

dir コマンドを使用してフォルダーを並べ替え、それらをエコーすることができます...

for /f "delims=" %%a in ( 'dir /b /ad /oN') do echo %%a  >> output.txt

そして、ディレクトリ名のみをエコーし​​たい場合

dir /b /ad /oN >> output.txt

十分でしょう...

コマンドプロンプトhelp forで、 help dir 非常に便利です...

于 2013-01-26T16:09:54.160 に答える
3

sortコマンドを使用するだけです。

for /D %%A IN (*) DO echo %%A>> output.txt
sort output.txt > sorted_output.txt

sort /?このコマンドの詳細については、またはこちらを呼び出して参照してください。

コマンドのヘルプで読むことができるよう/Oに、標準出力の代わりに出力をファイルにリダイレクトするために使用できます。これにより、次の 2 つのファイルが不要になります。

for /D %%A IN (*) DO echo %%A>> output.txt
sort output.txt /O output.txt

編集:素敵なワンライナーは次のようになります:

(for /D %%A IN (*) DO echo %%A) | sort > output.txt

また、最後に一度出力を書き込むため、はるかに高速です。

于 2013-01-26T16:09:41.560 に答える