Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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
Batch file 当变量有内部空格时,如何调用concat:%variable%?_Batch File_Cmd - Fatal编程技术网

Batch file 当变量有内部空格时,如何调用concat:%variable%?

Batch file 当变量有内部空格时,如何调用concat:%variable%?,batch-file,cmd,Batch File,Cmd,我试图使用以下命令在类路径中包含变量,但当文件夹名称包含空格时,该命令不起作用: call concat : %variable% 其中%variable%={包含空格的文件夹名} 我试着引用: call concat : "%variable%" 但这在我的类路径中添加了两个双引号,如下所示: ""folder name containing space"" :concat set CLASSPATH=%CLASSPATH%;"%1" 不要对带空格的字符串使用额外的双引号。参数%~删除

我试图使用以下命令在类路径中包含变量,但当文件夹名称包含空格时,该命令不起作用:

call concat : %variable%
其中
%variable%={包含空格的文件夹名}

我试着引用:

call concat : "%variable%"
但这在我的类路径中添加了两个双引号,如下所示:

""folder name containing space""

:concat
set CLASSPATH=%CLASSPATH%;"%1"

不要对带空格的字符串使用额外的双引号。参数
%~
删除字符串周围的所有双引号对:

@echo off &setlocal
set "Variable="my var""
echo Variable:  %Variable%
call :concat %Variable%
goto :eof

:concat
echo concat %%1:    %1
set "NewVar=%~1"
echo concat NewVar: %newvar%
goto :eof
endlocal
输出为:

Variable:       "my var" 
concat %1:      "my var" 
concat NewVar:  my var
如果在字符串周围加上双引号,将出现以下情况:

@echo off &setlocal
set "Variable="my var""
echo Variable:  %Variable%
call :concat "%Variable%"
goto :eof

:concat
echo concat %%1:    %1
set "NewVar=%~1"
echo concat NewVar: %newvar%
goto :eof
endlocal
输出中断时:

Variable:       "my var"
concat %1:      ""my
concat NewVar:  "my

在整个
SET
语句周围加引号:

SET "FOO=AB C"
SET "BAR=%FOO%D EF"
echo %BAR%
产出:

AB CD EF

从输入中删除双引号,在整个集合周围使用双引号,当使用连接字符串时,使用双引号将其包围,例如:

set root=%~1
@echo off
setlocal EnableDelayedExpansion
set i=0
for %%d in (
1.07 1.023 1.075 1.08 1.04
) do (
   set /A i=i+1
   set scale[!i!]=%%d
)
set i=0
for %%d in (
CO DE MH PL Pr
) do (
   set /A i=i+1
   set port[!i!]=%%d
)
for %%A in (0 1 2 3 4) do (
set "file1=%root%\Event\Events.txt"
set "file2=%root%\Port E\PortE_!port[%%A]!.txt"
set "file3=%root%\Poli E By Port\E_!port[%%A]!.txt"
%0\..\average101v2.exe "!file1!" "!file2!" "!file3!" !scale[%%A]!
)

“concat”不被识别为内部或外部命令、可操作程序或批处理文件。请说明您的
“%1”
位置,将其更改为
“%~1”
谢谢您的回复。但我的问题是关于concat变量(包含空格),谢谢baba maja aa gaya