运行lookatbat.bat
时,收到错误消息,表示找不到文件(file1WithSpaces.txt
)。我已尝试在此论坛中使用此修复程序,但即使使用此代码我也收到相同的错误。
这是一段lookatbat.bat
,它使用相对路径调用VBScript。
cscript process.vbs /x:"Temp\file1WithSpaces.txt" /y:"Temp\file2WithSpaces.txt"
process.vbs
调用bat文件(InprocessVbs.bat
),该文件使用process.vbs
的第一个参数。
process.vbs
有很多说明,这里有一个有用的部分:
dim param1: param1=Wscript.Arguments.Named("x")
dim param2: param2=Wscript.Arguments.Named("y")
msgbox param1
shell.run "InprocessVbs.bat """ & param1 & """ ""file.txt"""
msgbox param1
弹出 Temp \ file1WithSpaces.txt ,但我认为param1
无法正确检索到InprocessVbs.bat
。
感谢您的帮助!
InprocessVbs.bat
:
echo %2
echo %3
echo %4
Set arg1=%1
echo %arg1%
cscript anomyze.vbs %1>spec%1
more +2 %1|findstr /n /I /r /b /C:""^R.*=001>result.out
答案 0 :(得分:0)
尝试以下代码
strCMD = "InprocessVbs.bat "&chr(34) & param1 & chr(34)&" file.txt"
shell.run strCMD
答案 1 :(得分:0)
该路径被认为是相对于当前工作目录的,因此请检查工作目录是什么(在VBScript和从中调用的批处理脚本),并验证该工作目录下面是否存在给定的相对路径。
检查VBScript中的工作目录:
WScript.Echo CreateObject("WScript.Shell").CurrentDirectory
批量检查工作目录:
echo %CD%
编辑:通常最好从参数中删除双引号,并根据需要将它们添加到脚本中。试试这个:
cscript anomyze.vbs "%~f1">"spec%~1"
您可以使用以下内容验证文件是否存在:
if exist "%~f1" (
cscript anomyze.vbs "%~f1">"spec%~1"
) else (
echo "%~f1" doesn't exist!
)
同时检查findstr
正则表达式周围的双引号。在您的评论中,该部分看起来像这样:
/C:""^R.*=001
它应该是这样的:
/C:"^R.*=001"