Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何在批处理变量中包含空格?_Windows_Batch File_Command Prompt - Fatal编程技术网

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

Windows 如何在批处理变量中包含空格?,windows,batch-file,command-prompt,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 nam

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

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
但是,如果用户为
技术名称键入第二个字符串,则第二个字符串将被视为第三个变量。例如:

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
)?为什么结尾的
会出现回声?

引用你的论点:

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

旁白:你为什么要在那里开始一个新的shell?然后再打开(
/k
)?为什么结尾的
会出现回声?

哇,很简单……非常感谢你的回答;)。python脚本将一些消息打印到shell,因此我希望使用
/k
保持它的打开状态。但是我认为你关于
上的
@echo是对的。好吧,在你的情况下,你正在开始一个新的shell,它永远不会关闭,只是为了保持打开。为什么不在结尾加上
暂停
?哇,这么简单……非常感谢你的回答;)。python脚本将一些消息打印到shell,因此我希望使用
/k
保持它的打开状态。但是我认为你关于
上的
@echo是对的。好吧,在你的情况下,你正在开始一个新的shell,它永远不会关闭,只是为了保持打开。为什么不在末尾添加
pause
?将
IF/I%var\u type%==Technology
更改为
IF/I“%var\u type%”==“Technology”
,以避免在
%var\u type%
值包含空格时出现问题……将
IF/I%var\u type%==Technology
更改为
IF/I“%var\u type%”==“Technology”
以避免在
%var\u type%
值包含空格时出现问题。。。