如何将以“//”开头的参数传递给 wsh 脚本?
How to pass an argument that starts with "//" to a wsh script?
如果我有以下脚本(只将第一个参数打印到控制台):
@if (@X)==(@Y) @end /* JScript comment
@echo off
cscript //E:JScript //nologo "%~f0" %*
exit /b %errorlevel%
@if (@X)==(@Y) @end JScript comment */
WScript.Echo(WScript.Arguments.Item(0));
然后我尝试类似
C:\>test.bat "//test"
我收到以下错误
Input Error: Unknown option "//test" specified.
尽管 quotes.It 被作为 windows 脚本宿主的一个选项。
如何传递以 //
开头的参数。命名参数?
毕竟它适用于命名参数。
WScript.Echo(WScript.Arguments.Named.Item("test"));
和
cscript myscript.wsf /test:"//test"
cscript //E:JScript //nologo "%~f0" // %*
传递一个双斜线结束cscript
自己的参数解析。
注意:我不知道它是否在任何地方记录,但在windows 7 和 10
测试脚本:
Option Explicit
Dim argument
For Each argument In WScript.Arguments
WScript.Echo "argument: " & argument
Next
For Each argument In WScript.Arguments.Named
WScript.Echo "Named: " & argument
Next
For Each argument In WScript.Arguments.UnNamed
WScript.Echo "UnNamed: " & argument
Next
输出(抱歉,西班牙语语言环境):
W:\>cscript //nologo test.vbs //test
Error de entrada: Opción desconocida "//test" especificada.
W:\>cscript //nologo test.vbs // //test /one two
argument: //test
argument: /one
argument: two
Named: /test
Named: one
UnNamed: two
W:\>cscript test.vbs // //nologo //test /one two
Microsoft (R) Windows Script Host versión 5.812
Copyright (C) Microsoft Corporation. Reservados todos los derechos.
argument: //nologo
argument: //test
argument: /one
argument: two
Named: /nologo
Named: /test
Named: one
UnNamed: two
W:\>
如果我有以下脚本(只将第一个参数打印到控制台):
@if (@X)==(@Y) @end /* JScript comment
@echo off
cscript //E:JScript //nologo "%~f0" %*
exit /b %errorlevel%
@if (@X)==(@Y) @end JScript comment */
WScript.Echo(WScript.Arguments.Item(0));
然后我尝试类似
C:\>test.bat "//test"
我收到以下错误
Input Error: Unknown option "//test" specified.
尽管 quotes.It 被作为 windows 脚本宿主的一个选项。
如何传递以 //
开头的参数。命名参数?
毕竟它适用于命名参数。
WScript.Echo(WScript.Arguments.Named.Item("test"));
和
cscript myscript.wsf /test:"//test"
cscript //E:JScript //nologo "%~f0" // %*
传递一个双斜线结束cscript
自己的参数解析。
注意:我不知道它是否在任何地方记录,但在windows 7 和 10
测试脚本:
Option Explicit
Dim argument
For Each argument In WScript.Arguments
WScript.Echo "argument: " & argument
Next
For Each argument In WScript.Arguments.Named
WScript.Echo "Named: " & argument
Next
For Each argument In WScript.Arguments.UnNamed
WScript.Echo "UnNamed: " & argument
Next
输出(抱歉,西班牙语语言环境):
W:\>cscript //nologo test.vbs //test
Error de entrada: Opción desconocida "//test" especificada.
W:\>cscript //nologo test.vbs // //test /one two
argument: //test
argument: /one
argument: two
Named: /test
Named: one
UnNamed: two
W:\>cscript test.vbs // //nologo //test /one two
Microsoft (R) Windows Script Host versión 5.812
Copyright (C) Microsoft Corporation. Reservados todos los derechos.
argument: //nologo
argument: //test
argument: /one
argument: two
Named: /nologo
Named: /test
Named: one
UnNamed: two
W:\>