如何在批处理变量中包含空格?

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