I'll break this down into several distinct parts, as each part can be done individually. (我看到了类似的答案,但是我会在这里给出更详细的解释..)
第一部分,为了避免输入"CScript"(或"WScript"), 您需要告诉Windows如何启动一个*.vbs脚本文件。在我的Windows 8中(我不能确定所有这些命令在旧版Windows中是否完全按照此处所示工作,但即使您必须稍微更改命令,过程也是相同的),打开控制台窗口(又称"命令提示符",或者[不正确地]称为"dos提示符")并键入"assoc .vbs"。这应该会得到一个响应,例如:
C:\Windows\System32>assoc .vbs
.vbs=VBSFile
使用此命令,您需要输入“
ftype VBSFile”,然后会得到以下响应:
C:\Windows\System32>ftype VBSFile
vbsfile="%SystemRoot%\System32\WScript.exe" "%1" %*
-或-
C:\Windows\System32>ftype VBSFile
vbsfile="%SystemRoot%\System32\CScript.exe" "%1" %*
如果这两个已经像上面那样定义了,那么你的Windows已经设置好了如何启动 * .vbs 文件。 (顺便说一句,WScript和CScript是同一个程序,只是使用不同的名称。 WScript将脚本作为GUI程序启动,而CScript则将其作为命令行程序启动。有关这些详细信息和注意事项,请参阅其他网站和/或文档。)
如果任何一个命令没有像上面那样响应(或者如果assoc报告的文件类型和/或ftype执行的命令具有不同的名称或位置,则为类似的响应),则可以自己输入它们:
C:\Windows\System32>assoc .vbs=VBSFile
-和/或-
C:\Windows\System32>ftype vbsfile="%SystemRoot%\System32\WScript.exe" "%1" %*
你还可以输入"
help assoc"或"
help ftype"获取更多关于这些命令的信息,这些命令在你想要通过简单地键入特定扩展名的文件名来自动运行某些程序时非常方便。(但要小心,因为一些文件扩展名是由Windows或你可能安装的程序专门设置的,以便它们正常运行。始终检查assoc/ftype报告的当前分配值,并将它们保存在文本文件中,以防需要恢复它们。)
第二部分,在控制台窗口中输入命令时避免输入文件扩展名。了解Windows(和CMD.EXE程序)如何找到您输入的命令对于此(和下一个)部分非常有用。当您输入命令时,让我们以"querty"作为示例命令,系统将首先尝试在其内部命令列表中查找命令(通过Windows注册表中的系统设置或在CMD.EXE中编程)。由于没有这样的命令,它将尝试在当前的%PATH%环境变量中查找命令。在早期版本的DOS / Windows中,CMD.EXE(和/或COMMAND.COM)会自动将文件扩展名".bat",".exe",".com"和可能的".cmd"添加到您键入的命令名称中,除非您显式地键入了扩展名(例如"querty.bat"以避免错误运行"querty.exe")。在更现代的Windows中,它将尝试在%PATHEXT%环境变量中列出的扩展名。因此,您只需将.vbs添加到%PATHEXT%中即可。例如,这是我的%PATHEXT%:
C:\Windows\System32>set pathext
PATHEXT=.PLX;.PLW;.PL;.BAT;.CMD;.VBS;.COM;.EXE;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY
注意,扩展名必须包括“.”,用“;”分隔,而且.VBS在.CMD之后但在.COM之前。这意味着如果命令处理器(CMD.EXE)找到多个匹配项,它将使用列表中的第一个。也就是说,如果我有query.cmd、querty.vbs和querty.com,它将使用querty.cmd。
现在,如果你想一直这样做而不必一直设置%PATHEXT%,你需要修改系统环境。在控制台窗口中输入它只会更改该控制台窗口会话的值。我将把这个过程留给读者作为练习。:-P
第三部分,让脚本在不总是键入完整路径的情况下运行。这一部分与第二部分相关,自DOS时代以来就存在。只需确保文件位于%PATH%环境变量中列出的目录(文件夹,对于Windows用户而言!)之一中即可。我的建议是创建自己的目录,用于存储您经常创建或使用的各种文件和程序
从控制台窗口/命令提示符(也就是说,不要担心为从开始菜单或任何其他方法运行的程序执行此操作...仅适用于控制台窗口。除非您知道自己在做什么,否则不要操纵由Windows或自动安装程序安装的程序。)。
个人而言,我总是为批处理文件创建一个“C:\ sys \ bat”目录,为* .exe和* .com文件创建一个“C:\ sys \ bin”目录(例如,如果您下载类似于“md5sum”的MD5校验和实用程序),为VBScripts创建一个“C:\ sys \ wsh”目录(以及名为“wsh”的JScripts,因为两者都使用“Windows脚本宿主”或“wsh”程序执行),等等。然后,我将它们添加到系统的% PATH%变量中(控制面板->高级系统设置->高级选项卡->环境变量按钮),这样当我输入它们时,Windows就可以始终找到它们。
将这三个部分组合起来,就可以配置您的Windows系统,以便在任何地方输入命令行命令时,只需键入基本文件名即可启动您的VBScript。您也可以对几乎任何文件类型/扩展名执行相同的操作;正如您在我的%PATHEXT%输出中看到的那样,我的系统设置为运行Perl脚本(.PLX;.PLW;.PL)和Python(.PY)脚本。 (我还将“C:\sys\bat;C:\sys\scripts;C:\sys\wsh;C:\sys\bin”放在%PATH%的前面,并将各种批处理文件、脚本文件等放在这些目录中,这样Windows就可以随时找到它们。如果您想要“覆盖”某些命令,这也很方便:将* .bat文件放在路径的最前面会使系统先找到它们,而不是* .exe文件,例如,然后* .bat文件可以通过给出实际*.exe文件的完整路径来启动实际程序。查看有关“批处理文件编程”的各种网站,了解详细信息和其他命令行强大示例。它还没有死!)
最后提醒:一定要查看其他网站上的各种警告和注意事项。这个问题提出了一个名为“converter.vbs”的脚本,它非常接近命令“convert.exe”,这是一个将硬盘从FAT文件系统转换为NTFS文件系统的Windows程序...如果您打错字,可能会毁掉您的硬盘!
另一方面,使用上述技巧,您也可以避免这样的错误。以CONVERT.EXE为例...将其重命名为“REAL_CONVERT.EXE”,然后创建一个名为“C:\sys\bat\convert.bat”的文件,其中包含:
@ECHO OFF
ECHO !DANGER! !DANGER! !DANGER! !DANGER, WILL ROBINSON!
ECHO This command will convert your hard drive to NTFS! DO YOU REALLY WANT TO DO THIS?!
ECHO PRESS CONTROL-C TO ABORT, otherwise..
REM "PAUSE" will pause the batch file with the message "Press any key to continue...",
REM and also allow the user to press CONTROL-C which will prompt the user to abort or
REM continue running the batch file.
PAUSE
ECHO Okay, if you're really determined to do this, type this command:
ECHO. %SystemRoot%\SYSTEM32\REAL_CONVERT.EXE
ECHO to run the real CONVERT.EXE program. Have a nice day!
您也可以在现代Windows中使用CHOICE.EXE,让用户输入“y”或“n”,以确保他们真正想要继续等等。批处理文件(和脚本)的强大之处再次体现!以下是一些有关如何使用所有这些功能的良好资源链接:
http://ss64.com/
http://www.computerhope.com/batch.htm
http://commandwindows.com/batch.htm
http://www.robvanderwoude.com/batchfiles.php
大多数这些网站都针对批处理文件,但其中的大部分信息适用于运行任何类型的批处理(*.bat)文件、命令(*.cmd)文件和脚本(*.vbs, *.js, *.pl, *.py等)文件。