Есть ли способ открыть командный файл в определенной строке с помощью окна командной строки?

Я тестирую пакетный файл, над созданием которого все еще работаю, и хочу открыть его в строке 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 — это команда, указывающая время запуска командного файла, поэтому я не уверен

Можете ли вы сейчас просто добавить к ненужным строкам примечания (Rem) или недопустимые метки (::)?

Compo 15.08.2024 01:51

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

Voidmaster01 15.08.2024 02:08

также, если вы обнаружите какие-либо ошибки в этом коде, пожалуйста, дайте мне знать

Voidmaster01 15.08.2024 02:38

Прежде всего, в 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;)

Aacini 15.08.2024 03:13

Я новичок в использовании и создании пакетных файлов, поэтому я не знал, что не было «строк», поскольку я использую для этого код Visual Studio. но это ответ на мой вопрос

Voidmaster01 15.08.2024 03:16

Вам нужно будет указать, КАК код должен обнаруживать пропуск строк. Поскольку вы пропустили команду setlocal, IPath, M и NewPath останутся set в конце процесса, при условии, что вы запускаете этот код в окне cmd, а не из «ярлыка». В вашем коде не показано использование параметра. Можете ли вы указать параметр (например, /quick) и просто просканировать %* на наличие этого параметра, чтобы пропустить [не]обязательный код?

Magoo 15.08.2024 05:41

Да, конечно, в текстовом файле, в котором вы пишете подсказки, есть строки. Независимо от того, какой редактор вы используете. Но исполняемый код не работает со «строками», как заявил @Aacini. Чтобы запустить скрипт разными способами, я предлагаю вам сделать так, как написал @Aacini, но создать второй BAT-файл (например, «REMUX_premiere.bar») и написать там CALL REMUX.bat Premiere. Теперь ваш пользователь может выбрать, хочет ли он запустить скрипт целиком или с ярлыка :Premiere.

rzickler 15.08.2024 09:48

Я забыл: вам нужно закончить основной сценарий на EXIT /B 0, чтобы это работало. И, конечно же, эти два файла следует хранить вместе. В противном случае вам нужно во втором скрипте указать путь к основному скрипту. Для улучшения: взгляните на процесс запроса , чтобы проверить, запущен ли ваш редактор. Пример смотрите здесь

rzickler 15.08.2024 10:07
Почему в листингах кодов нет номеров строк?. Пожалуйста, удалите номера строк
phuclv 15.08.2024 14:37
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
9
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Да, это возможно. Используя пример скрипта:

@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 15.08.2024 14:17

Да, это довольно стандартная практика, @Aacini.

Gerhard 15.08.2024 15:40

Другие вопросы по теме