1

运行时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
4

2 回答 2

0

试试下面的代码

strCMD = "InprocessVbs.bat "&chr(34) & param1 & chr(34)&" file.txt"
shell.run strCMD
于 2013-04-16T15:04:53.377 回答
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"
于 2013-04-16T17:59:35.017 回答