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

时间:2017-01-10 11:35:21

标签: windows batch-file command-prompt

我运行以下批处理脚本,询问用户信息并将其分配给变量。

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

有没有一种方法在变量中包含空格,而不是强迫用户在字符串之间使用下划线?

1 个答案:

答案 0 :(得分:3)

引用你的论点:

cmd /k python "script.py" "%var_type%" "%var_technology%" "%var_name%"

顺便说一句:你为​​什么要在那里开始一个新的外壳?然后保持开放(/k)?为什么最后echo on