Comando / script em lote para fazer comandos a partir do arquivo .txt?

3

Estou tentando encontrar um comando ou um script que possa fazer comandos a partir de um arquivo .txt especificado. por exemplo, trataria um arquivo .txt como um arquivo em lotes, mas não necessariamente o renomear para .bat.

Alguém pode ajudar?

por exemplo:

cmd "filename.txt"
do cmd

Isso executaria filename.txt como um arquivo .bat e faria quaisquer comandos nele.

    
por ZeekPlayz 16.06.2018 / 05:55

3 respostas

7

Executar um arquivo de texto como um script em lote

Sim, isso é possível fazendo com que o arquivo de texto que contém os comandos que você precisa executar seja mencionado como o primeiro argumento em lote que é passado para o script em lote.

Você pode definir o valor do argumento como uma variável e usar o tipo para criar um arquivo em lote temporário com o conteúdo de o arquivo de texto e, em seguida, execute esse arquivo por meio de cmd para processar adequadamente.

Lógica de script em lote

@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

Note: You can use cmd /c to have the command window(s) close after execution.

Arquivo de texto

ECHO Line 1
dir *.txt

Note: This is the text file without a .bat or .cmd which each line will contain a valid batch command which will be executed.

Execute isso usando um dos dois. . .

1.Drag and Drop

enter image description here enter image description here

     

2. Linha de Comando

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

@ECHO OFF resultados

     

Maisrecursos

  • Argumentos da linha de comando (parâmetros)

    %* in a batch script refers to all the arguments (e.g. %1 %2 %3 %4 %5 ...%255) only arguments %1 to %9 can be referenced by number.

  • Se

  • Digite
  • Cmd

  • FOR /?

    In addition, substitution of FOR variable references has been enhanced. You can now use the following optional syntax:

    %~nI        - expands %I to a file name only
    
por 16.06.2018 / 06:22
3

Executar linhas individuais de um arquivo de texto como comandos em lote

Sim, isso é possível fazendo com que o arquivo de texto que contém os comandos que você precisa executar seja mencionado como o primeiro argumento em lote que é passado para o script em lote.

Você pode, então, executar o arquivo por meio de um loop para / f e iterar o conteúdo de cada linha individualmente e passar cada [comando] valor para cmd /c para executar adequadamente.

Lógica de script em lote

@ECHO ON

SET cmdtxt=%~1

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

Arquivo de texto

ECHO Line 1
dir *.txt

Note: This is the text file without a .bat or .cmd which each line will contain a valid batch command which will be executed.

Execute isso usando um dos dois. . .

1.Drag and Drop

enter image description here enter image description here

     

2. Linha de Comando

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

@ECHO OFF resultados

     

Maisrecursos

por 16.06.2018 / 07:56
0

Estou tentando encontrar um comando ou um script que possa executar comandos a partir de um arquivo .txt

As soluções mais simples são sempre as melhores.

Use o seguinte comando:

cmd < command.txt

Ou:

type command.txt|cmd

Resposta do StackOverflow de origem Como executar DIRECTAMENTE o comando no arquivo txt em cmd? por MC ND e seus comentários.

Nota:

There are several commands that will not work in this file, like goto, setlocal and others. However, multi-line nested if and for commands do work as long as for replaceable parameters use just one percent (like in the command-line).

Resposta do StackOverflow de origem Executando um arquivo de extensão não-bat como um arquivo de lote por Aacini

Veja a resposta do StackOverflow Como executar o script em lote sem usar * extensão .bat , também por Aacini , para mais observações sobre essa abordagem. Esta resposta também inclui um link para o código que pode obter goto e call funcionando também!

Leitura Adicional

por 16.06.2018 / 19:59