• ベストアンサー

画像のファイル名の末尾の文字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" ) )

質問者が選んだベストアンサー

  • ベストアンサー
  • UY-Scuti
  • ベストアンサー率85% (17/20)
回答No.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)

回答No.1

> set "tempname=!filename:~4!!extension!" 上記行を set "tempname=!filename:~-4!!extension!" と数字にマイナス記号でいけませんか?

関連するQ&A