批处理命令/脚本从.txt 文件执行命令?

批处理命令/脚本从.txt 文件执行命令?

我正在尝试寻找一个可以从指定.txt文件执行命令的命令或脚本。例如,它会将.txt文件视为批处理文件,但不一定将其重命名为.bat。

有人可以帮忙吗?

例如:

cmd "filename.txt"
do cmd

这会将 filename.txt 作为 .bat 文件运行并执行其中的任何命令。

答案1

我正在尝试寻找可以从 .txt 文件运行命令的命令或脚本

最简单的解决方案永远是最好的。

使用以下命令:

cmd < 命令.txt

或者:

输入命令.txt|cmd

来源 StackOverflow 答案如何在cmd中直接执行txt文件中的命令?经过MC ND以及它的评论。

笔记:

有几个命令在此文件中不起作用,例如gotosetlocal其他。但是,多行嵌套的iffor命令可以工作,只要可替换参数仅使用一个百分号(如在命令行中)。

来源 StackOverflow 答案将非 bat 扩展文件作为批处理文件运行经过腺泡

请参阅 StackOverflow 答案如何在不使用 *.bat 扩展名的情况下运行批处理脚本,也由腺泡goto,以了解有关此方法的更多观察。此答案还包含一个可以获取并正常工作的代码链接call


进一步阅读

答案2

将文本文件作为批处理脚本运行

是的,这是可能的,通过制作包含您需要执行的命令的文本文件作为第一个引用批次参数传递给批处理脚本。

您可以将参数值设置为变量并使用类型您可以使用文本文件的内容创建一个临时批处理文件,然后通过以下方式运行该文件命令进行相应处理。


批处理脚本逻辑

@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

笔记: 您可以使用命令/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 可以用数字引用。

  • 如果

  • 类型
  • 命令

  • FOR /?

    此外,FOR 变量引用的替换功能也得到了增强。现在您可以使用以下可选语法:

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

答案3

将文本文件中的各行作为批处理命令运行

是的,这是可能的,通过制作包含您需要执行的命令的文本文件作为第一个引用批次参数传递给批处理脚本。

然后您可以通过对于/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结果

在此处输入图片描述


更多资源

相关内容