编辑 - 一个解决方案:
C:\Realtime Data Export Tool\ExportTool\BatchFiles\ExportData.bat "DNCORR" "SYSTEM" "SYSTEM123" "SYNC" "TEST"
... Javacsript constructs this string and opens commandpromt to run the
batch file...
换句话说,它必须调用
cmd /C
或
cmd /K
来打开命令提示符... 在你的情况下:
cmd /C "C:\Realtime Data Export Tool\ExportTool\BatchFiles\ExportData.bat" "DNCORR" "SYSTEM" "SYSTEM123" "SYNC" "TEST"
无法工作,帮助信息(
cmd /?
)解释说,在这种情况下,
第一个和最后一个引号会被移除。因此,您的字符串可以使用以下任何一种(不是详尽列表,还有其他选项):
-
用额外的引号包围
""C:\Realtime Data Export Tool\ExportTool\BatchFiles\ExportData.bat" "DNCORR" "SYSTEM" "SYSTEM123" "SYNC" "TEST""
“替代引用”
C:"\Realtime Data Export Tool\ExportTool\BatchFiles\ExportData.bat" "DNCORR" "SYSTEM" "SYSTEM123" "SYNC" "TEST"
-
call
命令(首选)
call "C:\Realtime Data Export Tool\ExportTool\BatchFiles\ExportData.bat" "DNCORR" "SYSTEM" "SYSTEM123" "SYNC" "TEST"
"
- @
符号
"
@"C:\Realtime Data Export Tool\ExportTool\BatchFiles\ExportData.bat" "DNCORR" "SYSTEM" "SYSTEM123" "SYNC" "TEST"
证明:
==>type "simple cli Parser.bat"
@echo %%* = %*
==>"simple cli Parser.bat" "aa" bb
%* = "aa" bb
==>cmd /C "simple cli Parser.bat" "aa" bb
'simple' is not recognized as an internal or external command,
operable program or batch file.
==>cmd /C ""simple cli Parser.bat" "aa" bb"
%* = "aa" bb
==>cmd /C simple" cli Parser.bat" "aa" bb
%* = "aa" bb
==>cmd /C call "simple cli Parser.bat" "aa" bb
%* = "aa" bb
==>cmd /C @"simple cli Parser.bat" "aa" bb
%* = "aa" bb
==>
原始回答:
尝试下一批以查看参数如何工作:
@echo OFF >NUL
echo(
echo before any shift [%~1] [%~2] [%~3] [%~4]
echo all %%* = %*
echo(
set /A "ii=0"
:loopfor
echo param %%%ii% = %0
SHIFT
set /A "ii+=1"
if not [%0]==[] goto :loopfor
echo(
echo after all shifts [%~1] [%~2] [%~3] [%~4]
echo all %%* = %*
输出:
==>"D:\bat\cli Parser.bat" "a string with spaces" stringwithout spaces
before any shift [a string with spaces] [stringwithout] [spaces] []
all %* = "a string with spaces" stringwithout spaces
param %0 = "D:\bat\cli Parser.bat"
param %1 = "a string with spaces"
param %2 = stringwithout
param %3 = spaces
after all shifts [] [] [] []
all %* = "a string with spaces" stringwithout spaces
==>
资源(必读):