0

すぐ下のサブディレクトリにあるすべての *.csv ファイルを、現在のディレクトリにある 1 つのテキスト ファイルに追加するバッチ ファイルを書き込もうとしています。

さまざまな情報源から、このコードをつなぎ合わせることができました。これは、現在のディレクトリ内のファイルでは正常に機能しますが、サブディレクトリでは機能しません

for %%a in (*.csv) do (type %%a >> csvreport.txt)

ワイルドカードを使用してさまざまなアプローチを試みましたが、成功しなかったため、誰かがこれを手伝ってくれたら非常に感謝しています。

4

3 に答える 3

2

さらに別のオプション...

for /f usebackq %%a in (`dir /s /b *.csv`) do (type %%a >> csvreport.txt)

編集:詳細をもう少し読んでください...直接のディレクトリだけが必要な場合は、これを行うことができます:

for /f usebackq %%a in (`dir /b /ad`) do for %%b in ("%%a"\*.csv) do (type "%%b" >> csvreport.txt)
于 2009-10-13T21:08:46.967 に答える
0
dir /ad /b > dirs.txt
for /f "tokens=1*" %%i in (dirs.txt) do cd %%i & for %%b in (*.csv) do (type %%b >> c:\csvreport.txt) & cd ..

/R フラグを使用すると、すべてのサブディレクトリ ツリーが走査されます。「for」ステートメントをネストして、直下のサブディレクトリのみを操作し、そのサブディレクトリを操作できません。

于 2009-10-13T20:43:19.110 に答える
0
for /R .\ %%a in (*.csv) do (type %%a >> csvreport.txt)

/R は再帰的であることを示し、その後のパラメーターは開始するフォルダーです (.\ は現在のディレクトリです)。

実行すると、さらに多くを見つけることができますfor /?

于 2009-10-13T20:24:09.513 に答える