Ответ 1
Вы можете сделать это в соответствии со следующей командой script:
@setlocal enableextensions enabledelayedexpansion
@echo off
set variable=2005060.png
echo !variable!
if "x!variable:~-4!"=="x.png" (
set variable=!variable:~0,-4!
)
echo !variable!
endlocal
Выводится:
2005060.png
2005060
Магическая линия, конечно же, такова:
set variable=!variable:~0,-4!
который удаляет последние четыре символа.
Если у вас есть файл testprog.in
с строками, это:
2005060.png
1 2 3 4 5 leave this line alone.
2005070.png
2005080.png
2005090.png
вы можете использовать небольшую модификацию:
@setlocal enableextensions enabledelayedexpansion
@echo off
for /f "delims=" %%a in (testprog.in) do (
set variable=%%a
if "x!variable:~-4!"=="x.png" (
set variable=!variable:~0,-4!
)
echo.!variable!
)
endlocal
который выводит:
2005060
1 2 3 4 5 leave this line alone.
2005070
2005080
2005090
Просто имейте в виду, что он не будет выводить пустые строки (хотя он будет делать строки с пробелами на них).
Это может быть не проблема, зависящая от того, что разрешено в вашем исходном файле. Если это проблема, я советую вам воспользоваться CygWin или GnuWin32 (или Powershell, если у вас есть это на вашей платформе) и использовать некоторые реальные языки сценариев.