- ベストアンサー
画像のファイル名の末尾の文字4文字を削除したい
一括で、画像のファイル名の末尾の文字を削除したいと思っています。 バッチで先頭の文字4文字を削除できたのですが、 末尾の文字4文字を削除にしたいのですが、 どうすれば良いのかを教えていただけませんか。 ご教授いただけますでしょうか。 @echo off setlocal enabledelayedexpansion for /f "delims=" %%F in ('dir /b /a-d *.jpg *.png *.gif *.bmp') do ( set filename=%%~nF set extension=%%~xF rem ファイル名が4文字以上の場合にのみ先頭4文字を削除 if "!filename:~4!" neq "" ( set "tempname=!filename:~4!!extension!" rem リネーム後のファイル名が存在しない場合のみリネーム if not exist "!tempname!" ( ren "%%F" "!tempname!" ) ) else ( echo ファイル名が短すぎて変更できません: "%%F" ) )
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
rem ファイル名が4文字以上の場合にのみ先頭4文字を削除 if "!filename:~4!" neq "" ( set "tempname=!filename:~4!!extension!" ↓↓ rem ファイル名が4文字以上の場合にのみ末尾4文字を削除 if "!filename:~0,-4!" neq "" ( set "tempname=!filename:~0,-4!!extension!" 下記リンクの4つ目の「m文字目から、最後のn文字分を除いたもの」 https://www.upken.jp/kb/kZwpzAqblKfZDjtMXuWuwioeExKNdE.html
その他の回答 (1)
- redslove10
- ベストアンサー率41% (397/968)
> set "tempname=!filename:~4!!extension!" 上記行を set "tempname=!filename:~-4!!extension!" と数字にマイナス記号でいけませんか?