我正在尝试寻找一个可以从指定.txt文件执行命令的命令或脚本。例如,它会将.txt文件视为批处理文件,但不一定将其重命名为.bat。
有人可以帮忙吗?
例如:
cmd "filename.txt"
do cmd
这会将 filename.txt 作为 .bat 文件运行并执行其中的任何命令。
答案1
我正在尝试寻找可以从 .txt 文件运行命令的命令或脚本
最简单的解决方案永远是最好的。
使用以下命令:
cmd < 命令.txt
或者:
输入命令.txt|cmd
来源 StackOverflow 答案如何在cmd中直接执行txt文件中的命令?经过MC ND以及它的评论。
笔记:
有几个命令在此文件中不起作用,例如
goto
和setlocal
其他。但是,多行嵌套的if
和for
命令可以工作,只要可替换参数仅使用一个百分号(如在命令行中)。
来源 StackOverflow 答案将非 bat 扩展文件作为批处理文件运行经过腺泡
请参阅 StackOverflow 答案如何在不使用 *.bat 扩展名的情况下运行批处理脚本,也由腺泡goto
,以了解有关此方法的更多观察。此答案还包含一个可以获取并正常工作的代码链接call
!
进一步阅读
- Windows CMD 命令行的 AZ 索引
- Windows CMD 命令的分类列表
- 重定向- 重定向运算符。
- 类型- 显示一个或多个文本文件的内容。
答案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
结果
更多资源
答案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
结果