2017-07-10 6 views
0

バッチファイルを使用して異なるフォルダのすべての.txtファイルを1つのフォルダに移動しようとしています。いくつかの困難を抱えている。次のようにバッチファイルを使用して異なるフォルダの.txtファイルを1つのフォルダに移動

私のコードは次のとおりです。画面への出力がOK前にエコーを取り除くに見える場合

FOR /D /r %%G IN ("C:\Users\Rodrigo\Desktop\PR\2016\08.2016\") DO MOVE G\*.txt C:\Users\Rodrigo\Desktop\PR\2016\ 
+0

可能な重複は(https://stackoverflow.com/questions/10155420/recursive-move-command-on-windows) –

答えて

0

For /rまたはオープンCMDウィンドウタイプでhelp for

@Echo off 
For /r "C:\Users\Rodrigo\Desktop\PR\2016\08.2016\" %%G IN (*.txt 
    ) Do echo Move "%%G" "C:\Users\Rodrigo\Desktop\PR\2016\" 
Pause 

の正しい構文を参照してください。 moveコマンドの

+0

あなたは右の私の答えは再帰的ではありませんでした。 "G * .txt"については、彼が彼の質問で持っていたものなので、私はそれを使ったのです。 –

+0

@RatherNotsay "%% G"の出力を得ようとしていたと思います。 – LotPings

+0

これは、誰かが適切なコードの書式を使って質問を編集したことで明らかです。 :) –

0

これはPowerShellですべて実行できます。ファイルへのパスを含む$ _ FullNameを渡さないとうまくいきません。 [Windows上の再帰的な移動コマンド]の

Get-ChildItem -Path "C:\Users\Rodrigo\Desktop\PR\2016\08.2016\" -Filter *.txt | ` 
    ForEach-Object { $_.FullName } | ` 
    Move-Item -Destination "C:\Users\Rodrigo\Desktop\PR\2016\" 
+0

パイプやコンマpowershellが次の行に続いた後で改行をエスケープする必要はありません。 – LotPings

+0

はい、ラインの最後に垂直バーがある場合は、行継続GRAVE ACCENT文字は不要です。明示的にしようとしていたPowerShellはフリーフォーマット言語ではありません。必要な時があります。 – lit

関連する問題