Я тестирую пакетный файл, над созданием которого все еще работаю, и хочу открыть его в строке 6 вместо строки 1, поскольку я уже запускал эту часть кода. его запуск занимает пару минут, так как я использую ffmpeg.
это первая область кода
@Echo off
set /p IPath=Enter the Path of the file you wish to remux from (use "Copy as path" option and keep the Quotations):
set /P M=what is the first letter of the path of your new file?(do not include the semicolon(:))
set /p NewPath=Enter the Path you wish to remux to (must be path minus the directory BUT do not use Quotations for this)(I also recommend using a single folder to hold the files while remuxing them before sending them to their separate folders):
ffmpeg -i %IPath% -c copy -map 0 "%M%:\%NewPath%"
goto :Premiere &:: This command takes inputs from the previous lines and sets up to remux files
:Premiere &:: this command line starts the preferred editor and waits 30 seconds to allow it to start
set /p EDITOR=Enter the .exe file for your prefered editor should look like: 'Adobe Premiere Pro.exe':
start "" "%EDITOR%"
echo Starting Process. . . Please Wait
timeout /t 30
tasklist | find /I "%EDITOR%" &:: The next couple of lines test for the editor to see if it opened or not
if errorlevel 1 (
echo could not start process
goto :FailEditor
) Else (
echo Process completed, next question--->
goto :choice
)
поэтому вместо того, чтобы начинать со строки 1, я хотел бы начать со строки 6, чтобы обойти самую длинную часть кода.
Я думаю, это что-то вроде
Start M:\REMUX.bat at line 6
однако AT
— это команда, указывающая время запуска командного файла, поэтому я не уверен
Я имею в виду, да, я могу, но это также и на будущее, просто для тестирования кода или указания другим, кто тоже хочет его использовать.
также, если вы обнаружите какие-либо ошибки в этом коде, пожалуйста, дайте мне знать
Прежде всего, в BATch-файлах нет «строк», есть :labels. Вы можете запустить командный файл с помощью if "%1" neq "" goto %1
. После этого используйте Start M:\REMUX.bat
, чтобы начать с начала, или Start M:\REMUX.bat Premiere
, чтобы начать с метки :Premiere
. Вы также можете использовать if /I "%1 %2" equ "at label" goto %3
, а затем использовать Start M:\REMUX.bat at label Premiere
;)
Я новичок в использовании и создании пакетных файлов, поэтому я не знал, что не было «строк», поскольку я использую для этого код Visual Studio. но это ответ на мой вопрос
Вам нужно будет указать, КАК код должен обнаруживать пропуск строк. Поскольку вы пропустили команду setlocal
, IPath
, M
и NewPath
останутся set
в конце процесса, при условии, что вы запускаете этот код в окне cmd
, а не из «ярлыка». В вашем коде не показано использование параметра. Можете ли вы указать параметр (например, /quick
) и просто просканировать %*
на наличие этого параметра, чтобы пропустить [не]обязательный код?
Да, конечно, в текстовом файле, в котором вы пишете подсказки, есть строки. Независимо от того, какой редактор вы используете. Но исполняемый код не работает со «строками», как заявил @Aacini. Чтобы запустить скрипт разными способами, я предлагаю вам сделать так, как написал @Aacini, но создать второй BAT-файл (например, «REMUX_premiere.bar») и написать там CALL REMUX.bat Premiere
. Теперь ваш пользователь может выбрать, хочет ли он запустить скрипт целиком или с ярлыка :Premiere
.
Я забыл: вам нужно закончить основной сценарий на EXIT /B 0
, чтобы это работало. И, конечно же, эти два файла следует хранить вместе. В противном случае вам нужно во втором скрипте указать путь к основному скрипту. Для улучшения: взгляните на процесс запроса , чтобы проверить, запущен ли ваш редактор. Пример смотрите здесь
Да, это возможно. Используя пример скрипта:
@echo off
if not "%~1" == "" goto :%~1
:function1
echo this is function 1
:function2
echo this is function 2
:function3
echo this is function 3
Вы просто указываете имя метки в качестве параметра при запуске сценария, пример:
scriptname.cmd function2
который пропустит function1
Да, это тот самый совет , который я давал 8 часами ранее...
Да, это довольно стандартная практика, @Aacini.
Можете ли вы сейчас просто добавить к ненужным строкам примечания (
Rem
) или недопустимые метки (::
)?