-2

Приведенный ниже файл bat работает только внутри определенной папки, в которой находится файл bat, и я бы хотел, чтобы он работал вне этой папки или, по крайней мере, в другой папке, чем тот, в котором находится пакетный скрипт. Я новичок в файлах Bat и не уверен, но я попробовал несколько вещей без успеха.

Этот код удалит часть имени файла, " _page ", установленный как переменная ниже.

setlocal enabledelayedexpansion
set deletestring=_page
echo Ready to start
echo.
pause
echo.
for /f  "delims==" %%F in ('dir /b /l *.png  ^| find "%deletestring%"') do (
    set oldfilename=%%F
    set newfilename=!oldfilename:%deletestring%=!
     Ren "!oldfilename!" "!newfilename!"
    )

1 ответ1

0

Просто измените *.png на "c:\folder\path\*.png" и тогда пакетная команда в цикле for должна запускаться из любой папки с указанным полным явным путем для файлов .png . Просто установите путь к папке .png в качестве значения переменной src= и используйте его в команде dir цикла for.

Пример скрипта

setlocal enabledelayedexpansion
set deletestring=_page
set src=c:\folder\path
echo Ready to start
echo.
pause
echo.
for /f  "delims==" %%F in ('dir /b /l "%src%\*.png"  ^| find "%deletestring%"') do (
    set oldfilename=%%F
    set newfilename=!oldfilename:%deletestring%=!
    Ren "!oldfilename!" "!newfilename!"
    )

Разъяснение сценария


Дополнительные ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .