親ディレクトリを除くサブディレクトリにファイルを移動するバッチ

親ディレクトリを除くサブディレクトリにファイルを移動するバッチ

親フォルダのすべてのサブディレクトリにコピーしたい *otf ファイルがあります。これが私が試みたことです。

for /R %%x in (.) do copy "file.otf" "%%x"

これは大部分で機能しますが、親フォルダーにもコピーが残ります。バッチがすべてのサブディレクトリにのみコピーするように修正したいと思います。

答え1

Microsoft Windows [バージョン 10.0.17134.648] ではコードを動作させることができませんでした。次のコードは動作します。

テスト:

for /f "tokens=*" %%x in ('dir /b /s /ad "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\"') do echo copy /y "file.otf" to "%%x\"

コピー:

for /f "tokens=*" %%x in ('dir /b /s /ad "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\"') do copy /y "file.otf" "%%x\"

サブディレクトリから file.otf を削除します。

for /f "tokens=*" %%x in ('dir /b /s /ad "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\"') do del /q "%%x\file.otf"

tokens=*はパス/ファイル名内のスペースを処理します

"tokens=*"

dir /b /s /ad はファイルをファイルではなくディレクトリにコピーします。/ad がない場合、file.otr はディレクトリ内のすべてのファイルを上書きします。心配な場合は、copy /y ではなく copy を使用してください。

dir /b /s /ad

copy /y は、許可を求めずに file.otr を上書きします。動作に満足するまでに、何度か試す必要があります。

copy /y

コードを「修正」する代わりに、親ディレクトリの file.otr を削除してみてはいかがでしょうか?

del /q file.otr

関連情報