スクリプトで DelayedExpansion を有効にすると、ファイル名の文字列「 ! 」がエコーされません。例えば:
元
のファイル01-TEXT!.txt
File01-TEXT.txt をエコーアウトする
のせいだと思いますがsetlocal EnableDelayedExpansion
、必要なので削除できません。
@echo off
setlocal EnableDelayedExpansion
cd "C:\Files"
for %%a in (*.txt) do (
REM Here's the problem...
echo %%a
set "str=%%a"
set new_str=!str:0,3!
)
echo %new_string%
pause >nul