我试图从指定的 .txt 文件中查找可以执行命令的命令或脚本。例如,它会将 .txt 文件视为批处理文件,但不一定将其重命名为 .bat。
任何人都可以帮忙吗?
例如:
cmd "filename.txt"
do cmd
Run Code Online (Sandbox Code Playgroud)
这会将 filename.txt 作为 .bat 文件运行并在其中执行任何命令。
Dav*_*ill 10
最简单的解决方案总是最好的。
使用以下命令:
cmd < 命令.txt
或者:
输入命令.txt|cmd
源 StackOverflow 回答如何在 cmd 中直接执行 txt 文件中的命令?由MC ND和它的评论。
笔记:
有几个命令,将不会在这个文件里,比如
goto
,setlocal
和其他人。但是,只要可替换参数只使用百分之一(就像在命令行中一样),多行嵌套if
和for
命令就可以工作。
Source StackOverflow answer Running a non bat extension file as a batch file by Aacini
有关此方法的更多观察,请参阅 StackOverflow 回答How to run batch script without using *.bat extension,也由Aacini提供。这个答案还包括一个指向代码的链接,该链接也可以获取goto
并call
运行!
是的,这可以通过将包含您需要执行的命令的文本文件作为传递给批处理脚本的第一个批处理参数来引用。
您可以将参数值设置为变量,使用type可以使用文本文件的内容创建一个临时批处理文件,然后通过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
Run Code Online (Sandbox Code Playgroud)
注意: 您可以使用cmd /c在执行后关闭命令窗口。
ECHO Line 1
dir *.txt
Run Code Online (Sandbox Code Playgroud)
注意: 这是没有 a
.bat
或.cmd
每行将包含将被执行的有效批处理命令的文本文件。
1.拖放
2. 命令行
Run Code Online (Sandbox Code Playgroud)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 变量引用的替换。您现在可以使用以下可选语法:
Run Code Online (Sandbox Code Playgroud)%~nI - expands %I to a file name only
归档时间: |
|
查看次数: |
51981 次 |
最近记录: |