我运行以下批处理脚本,询问用户信息并将其分配给变量。
set var_type=1
set var_name=1
set var_technology=1
set /p var_type="Enter type (E.g. "Equipment" or "Technology"): "
IF /I %var_type%==Technology set /p var_technology="Enter technology name: "
set /p var_name="Enter name: "
cmd /k python "script.py" %var_type% %var_technology% %var_name%
当用户键入单个字符串时,脚本可以正常工作。 E.g:
Enter type (E.g. "Equipment" or "Technology"): Technology
Enter technology name: Solar
Enter name: Philips
以上变量传递给python脚本,该脚本使用上面的名称创建文件夹:
C:/Users/ME/Desktop/Technology/Solar/Philips
但是如果用户输入technology name
的第二个字符串,则第二个字符串被视为第三个变量。 E.g:
Enter type (E.g. "Equipment" or "Technology"): Technology
Enter technology name: Solar PV
Enter name: Philips
现在文件夹结构是:
C:/Users/ME/Desktop/Technology/Solar/PV
它应该在哪里:
C:/Users/ME/Desktop/Technology/Solar PV/Philips
有没有一种方法在变量中包含空格,而不是强迫用户在字符串之间使用下划线?
答案 0 :(得分:3)
引用你的论点:
cmd /k python "script.py" "%var_type%" "%var_technology%" "%var_name%"
顺便说一句:你为什么要在那里开始一个新的外壳?然后保持开放(/k
)?为什么最后echo on
?