将Windows路径传递到vbs脚本,然后该脚本运行批处理文件

时间:2019-09-17 04:06:51

标签: batch-file vbscript

我正在尝试隐藏一个批处理文件。我在这里读了很多线程,但是仍然无法正常工作。 Win7-我在任务栏中创建了一个新的工具栏,向我显示特定文件夹中的所有.enc文件。我想单击以选择其中一个文件名,并将其发送到vbs脚本,该脚本将运行一个以该文件名隐藏的批处理文件作为该批处理文件的第一个参数。我正在使用Total Commander,并为.enc文件设置了以下文件关联-

hidebat.vbs %1

应该使用我选择的文件名并将其发送到脚本。

这是脚本hidebat.vbs-

CreateObject("Wscript.Shell").Run "G:\test\clipTest.bat" WScript.Arguments(0), 0, True

这是该主题的另一个线程,用于运行隐藏的批处理文件,但增加了WScript.Arguments(0)部分。据说,它抓住了vbs脚本的第一个参数。

当我尝试此操作时,出现一个窗口,指出我选择的文件名不是有效的win32应用程序。很明显出了什么问题吗?

如果可以在vbs脚本中完成所有操作,那就更好了。我只在批处理文件中做两件事-

1. echo|set /p=%1|clip  (echoing that filename to the clipboard)
2. start "" "g:\test\Process.lnk"  (running this shortcut)

3 个答案:

答案 0 :(得分:1)

您忘记了&以及脚本和自变量之间的空格。 试试这个:

CreateObject("Wscript.Shell").Run "G:\test\clipTest.bat " & WScript.Arguments(0), 0, True

答案 1 :(得分:1)

尝试以下方法。如果您的路径中包含空格,则Chr(34)会解析为引号:

CreateObject("Wscript.Shell").Run chr(34) & "G:\test\clipTest.bat" & chr(34) & " " & chr(34) & WScript.Arguments(0) & chr(34), 0, True

答案 2 :(得分:0)

我必须将文件关联行更改为-

wscript "g:\path\to\hidebat.vbs" "%1"

现在可以了,谢谢!