3

Я пытаюсь найти команду или скрипт, который может выполнять команды из указанного файла .txt. например, он будет обрабатывать файл .txt как пакетный файл, но не обязательно переименовывать его в .bat.

Кто-нибудь может помочь?

например:

cmd "filename.txt"
do cmd

Это будет запускать filename.txt как файл .bat и выполнять любые команды в нем.

3 ответа3

7

Запустите текстовый файл как пакетный скрипт

Да, это возможно, если сделать текстовый файл, содержащий команды, которые вам нужно выполнить, ссылаться на первый пакетный аргумент, который передается пакетному сценарию.

Вы можете установить значение аргумента в качестве переменной и, используя тип, вы можете создать временный пакетный файл с содержимым текстового файла, а затем запустить этот файл через cmd для соответствующей обработки.


Пакетная логика сценариев

@ECHO ON

SET cmdtxt=%~1
SET cName=%~N1

if exist "%tmp%\%cName%.cmd" del /q /f "%tmp%\%cName%.cmd"
if not exist "%tmp%\%cName%.cmd" type "%cmdtxt%" >> "%tmp%\%cName%.cmd"
cmd /k "%tmp%\%cName%.cmd"

pause
exit

Примечание. Вы можете использовать cmd /c, чтобы закрыть окно (и) команд после выполнения.


Текстовый файл

ECHO Line 1
dir *.txt

Примечание. Это текстовый файл без .bat или .cmd каждая строка которого будет содержать действительную пакетную команду, которая будет выполнена.


Выполните это, используя либо. , ,

1.Перетаскивание


2. Командная строка

C:\Users\User\Desktop\RunMe\RunTextCommands.cmd "C:\Users\User\Desktop\RunMe\cmd.txt"

@ECHO OFF Результаты


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

  • Аргументы командной строки (параметры)

    % * в пакетном скрипте ссылается на все аргументы (например,% 1% 2% 3% 4% 5 ...% 255), только на аргументы от% 1 до% 9 можно ссылаться по номеру.

  • Если

  • Тип
  • Cmd

  • FOR /?

    Кроме того, была улучшена замена ссылок на переменные FOR. Теперь вы можете использовать следующий необязательный синтаксис:

    %~nI        - expands %I to a file name only
    
3

Запускать отдельные строки из текстового файла как пакетные команды

Да, это возможно, если сделать текстовый файл, содержащий команды, которые вам нужно выполнить, ссылаться на первый пакетный аргумент, который передается пакетному сценарию.

Затем вы можете запустить файл через цикл for /f, выполнить итерацию по содержимому каждой строки в отдельности и передать каждое значение [command] в cmd /c для выполнения соответствующим образом.


Пакетная логика сценариев

@ECHO ON

SET cmdtxt=%~1

FOR /F "USEBACKQ TOKENS=*" %%A IN ("%cmdtxt%") do (
    cmd /c "%%~A"
    )
::PAUSE
EXIT 

Текстовый файл

ECHO Line 1
dir *.txt

Примечание. Это текстовый файл без .bat или .cmd каждая строка которого будет содержать действительную пакетную команду, которая будет выполнена.


Выполните это, используя либо. , ,

1.Перетаскивание


2. Командная строка

C:\Users\User\Desktop\RunMe\RunTextCommands.cmd "C:\Users\User\Desktop\RunMe\cmd.txt"

@ECHO OFF Результаты


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

1

Я пытаюсь найти команду или скрипт, который может запускать команды из файла .txt

Самые простые решения всегда самые лучшие.

Используйте следующую команду:

cmd <command.txt

Или же:

введите command.txt | cmd

Ответ Source StackOverflow Как ПРЯМО выполнить команду в текстовом файле в cmd? MC ND, и это комментарии.

Замечания:

Есть несколько команд, которые не будут работать в этом файле, такие как goto , setlocal и другие. Однако многострочные вложенные команды if и for работают, если для заменяемых параметров используется только один процент (как в командной строке).

Исходный ответ StackOverflow Запуск файла расширения, отличного от bat, в виде пакетного файла от Aacini

См. StackOverflow answer Как запустить пакетный скрипт без использования расширения * .bat, также от Aacini, для более подробных наблюдений за этим подходом. Этот ответ также включает в себя ссылку на код, который может goto рабочий стол и call !


Дальнейшее чтение

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