我对批处理文件编码一无所知。我需要一个 .bat 来运行命令,但随后我需要它向我询问输入的地址。我需要运行的内容如下:
C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "LOCATION" -st 10 -H 0.0.0.0
所以我需要运行一个 bat 文件,然后让它询问我位置,然后让它用它运行命令。提前谢谢!
答案1
如果您习惯在运行批处理文件时简单地输入位置,您可以替换%1对于您希望在批处理命令中显示的项目,例如:
C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "%1" -st 10 -H 0.0.0.0
假设您希望“LOCATION”像示例中那样出现,您可以输入:
nameof.bat LOCATION
这将产生您的原始示例,即:
C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "LOCATION" -st 10 -H 0.0.0.0
%1对应于在命令行中键入批处理文件名称后列出的第一项,即
nameof.bat item_one(%1) item_two(%2) item_three(%3) ....
如果您想要复杂替换(一次替换多个项目),请使用 %*(百分比星号),例如:
C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere %* -st 10 -H 0.0.0.0
如果使用以下命令调用:
nameof.bat -l "LOCATION"
它会再次产生你的原始示例,即:
C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "LOCATION" -st 10 -H 0.0.0.0
注意事项
请注意,您确实需要小心使用双引号“”,但只要您知道批处理命令中的内容就可以了。
此方法唯一真正的缺点是,如果您在调用批处理文件时没有在命令行中键入与替换相对应的任何内容,则替换将为空白,例如:
C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "%1" -st 10 -H 0.0.0.0
用于:
nameof.bat
将产生:
C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "" -st 10 -H 0.0.0.0
答案2
所以我需要运行一个 bat 文件,然后让它询问我位置
用于set /p
提示并输入一个值:
SET /P variable=[promptString]
该
/P
开关允许您将变量设置为等于用户输入的一行。在读取用户输入之前显示提示字符串。
尝试以下批处理文件:
@echo off
setlocal
set /p _location=Enter a location:
C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "%_location%" -st 10 -H 0.0.0.0
endlocal
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 放- 显示、设置或删除 CMD 环境变量。使用 SET 所做的更改将仅在当前 CMD 会话期间保留。