
アルファベット順に並べられたファイルを 1 つのファイルにコピーする方法を説明している質問 217394 を見つけました。自分でコマンドを実装しようとすると、次のエラー メッセージが表示されました: 指定されたファイルが見つかりません。
実行しようとしているコマンドは次のとおりです:
/f %i in ('dir /ad /on /b O:\OrdersExport\Order*.txt') で @type %i を実行します >> C:\Users\Admin\Documents\OrderImport.txt
最初に問題のフォルダを参照すると、エラーは表示されません。
C:\>O: C:\>cd OrdersImport
宛先からその単一のファイルに 1 行をコピーするだけです。
ちなみに、O:はネットワーク経由でマップされたフォルダです
答え1
このdir
コマンドはファイル名のみをリストします。したがって、%i
変数には相対パスが入ります。コマンドが問題のディレクトリから実行されていない場合は、%~fi
相対パスを絶対パスに拡張するために を使用します。
for /f "tokens=*" %i in ('dir /a-d /o-n /b "O:\OrdersExport\Order*.txt"') do (
@type "%~fi" >> "C:\Users\Admin\Documents\OrderImport.txt"
)
tokens=*
ファイル名内のスペースを処理するため、出力%i
は常に行全体になりますdir
。