Показать полную графическую версию : [решено] продолжить код
Alexander_88
01-07-2018, 15:35
Здравствуйте, есть код
@Echo Off
Set "BoxIn=C:\settings and files\limit"
Set Mask= "START - *."
:Begin
Set "NewEnd="
SET /P NewEnd=Enter limit :
If "%NewEnd%"=="" GoTo :Eof
Call :FileRen "%NewEnd%" "%BoxIn%" %Mask%
rem GoTo :Begin
GoTo :Eof
:FileRen
:BeginRen
If "%~3"=="" GoTo :Eof
FOR /F "usebackq tokens=1 delims=*" %%f IN ('%~3') DO Set "OldName=%%f"
FOR %%f IN ("%~2\%~3") DO Ren "%%f" "%OldName%%~1%%~xf"
Shift /3
GoTo :BeginRen
GoTo :Eof
Как после его выполнения продолжить выполнять команды?
например if exist = "new.txt" del "fi*.txt"
пишу в самом низу.. не работает :(
Как после его выполнения продолжить выполнять команды? »
В указанном виде — никак.
пишу в самом низу.. не работает »
До Ваших команд дело никогда не дойдёт, поскольку внутренняя команда безусловного перехода goto :eof передаёт управление на скрытую метку в конце пакетного файла :).
megaloman
01-07-2018, 16:44
Alexander_88, Не понял, что Вы имеете ввиду. Имхо, перед : rem GoTo :Begin ваяйте код дальше.
Вообще, структура командного файла практически как у любой программы. Здесь:
Главная часть. Если есть процедуры, она должна завершиться или goto :eof или exit /b (подробнее exit /?)
Процедура оформляется как
:метка процедуры
goto :eof или exit /b
Никакие строки, написанные ниже, исполняться не будут - это совершенно нелогично. Туда программа просто не попадает. Если конечно, не извратиться и поставить там метку, на которую потом перейти по goto. Но это не наш путь, так можно и лоб расшибить
Alexander_88
01-07-2018, 16:56
просто этот бат переименовывает файл, потом его нужно копировать по локальной сети, вот и не понятно как это сделать
Alexander_88, Не понял, что Вы имеете ввиду. Имхо, перед : rem GoTo :Begin ваяйте код дальше »
попробую, только нужно копировать уже после переименования (выполнения данной операции)
Alexander_88
01-07-2018, 17:17
да, вроде работает, и перед GoTo :BeginRen, и перед : rem GoTo :Begin :)
Alexander_88,
а зачем там хоть одна goto?
вот примерный шаблон:
@echo off
:: Допустим находим имя файла (file.txt из сочетаний)
set "d=C:\papka"
set "new=newfile.txt"
pushd "%d%"
for /f "delims=" %%a in ('dir /a-d/b "file.txt"') do call :m1 "%%a"
:: Вернулись из подпрограммы в метке "m1" после выполнения всех указанных там команд
echo Выполняем задачи основного кода
popd
pause& exit
:m1
:: Переименовываем найденный файл
echo ren %~1 %new%
echo Отправляем файл %new% куда-то
exit /b
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC