如何在批处理变量中包含空格?
How to include spaces in batch variable?
我 运行 以下批处理脚本要求用户提供信息并将其分配给变量。
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%
当用户键入单个字符串时,该脚本工作正常。例如:
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
输入第二个字符串,则第二个字符串将被视为第三个变量。例如:
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
有没有办法在变量中包含空格,而不是强制用户在字符串之间使用下划线?
引用你的论点:
cmd /k python "script.py" "%var_type%" "%var_technology%" "%var_name%"
顺便说一句:您要在那里开始新的 shell 有什么原因吗?然后保持打开状态 (/k
)?为什么最后是 echo on
?
我 运行 以下批处理脚本要求用户提供信息并将其分配给变量。
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%
当用户键入单个字符串时,该脚本工作正常。例如:
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
输入第二个字符串,则第二个字符串将被视为第三个变量。例如:
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
有没有办法在变量中包含空格,而不是强制用户在字符串之间使用下划线?
引用你的论点:
cmd /k python "script.py" "%var_type%" "%var_technology%" "%var_name%"
顺便说一句:您要在那里开始新的 shell 有什么原因吗?然后保持打开状态 (/k
)?为什么最后是 echo on
?