実現したいこと
batファイルを実行して複数階層のファイルを処理してそのファイルをその階層に保持したまま元のファイルを削除したい。
前提
フォルダA
| conv.bat
+---フォルダB
| image1.webp
| image2.webp
+---フォルダC
| imageA.webp
| imageB.webp
~略
上記のような構造の時にフォルダAでbatを実行した時にフォルダBとフォルダCのwebpを変換してかつその変換したファイルをフォルダBにあったものはフォルダBに、フォルダCにあったものはフォルダCに移動させたいです。
その後、不要となったファイルwebpを削除したいです。
発生している問題・エラーメッセージ
フォルダAにファイルが展開されてしまい今後同名ファイルがあった場合上書きされてしまい保持できなくなってしまう。
該当のソースコード
bat
1for /R "%~dp0" %%i in (*.webp) do ffmpeg -i "%%i" "%%~ni.jpg"
試したこと
ffmpegの挙動はffmpeg -i 入力ファイル [オプション](今回は必要としない) 出力ファイル
となっています。
ソースコードのbatの実行したところwebpの取得(2回目の%%i)では絶対パスで取得できており、最後の出力のところでフォルダ指定が無いのでbatと同じ階層にファイルを置いてしまっている(と思います。)
補足情報(FW/ツールのバージョンなど)
なるべく外部ツールは使用したくありません。個人的に書きやすい為batで書いていますがpowershellのps1でも構いません。

回答1件
あなたの回答
tips
プレビュー