親フォルダのすべてのサブディレクトリにコピーしたい *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