Non ce n'è uno. Ma è abbastanza banale.
For each ag in wscript.arguments
CMDLINE = CMDLINE & " " & ag
Next
wscript.echo mid(CMDLINE, 2)
o
For each ag in wscript.arguments
If Instr(Ag, " ") = True then
CMDLINE = CMDLINE & " " & Chr(34) & ag & Chr(34)
Else
CMDLINE = CMDLINE & " " & ag
End if
Next
wscript.echo mid(CMDLINE, 2)
E
C:\Users\User>cscript //nologo "C:\Users\User\Desktop\New Text Document (3).vbs" cat dog "mouse and cat"
cat dog mouse and cat
Questo vale per VBScript e VBA.
Entrambe queste informazioni di base sono ospitate da altri programmi. È l'host che raccoglie informazioni sulla riga di comando (se presenti). È l'host che lo rende disponibile alle vbs tramite un oggetto nel caso di wscript, ma non quando è ospitato in IE/IIS. E VBA ha una funzione implementata dall'host (implementata da Corel Office, Microsoft Office e VB6).
Function Declaration
Function Command() As Variant
Function Command$() As String
Runtime Semantics.
Returns the argument portion of the implementation dependent command used to initiate execution of the currently executing VBA program.
The runtime semantics of Command$ are identical to those of Command with the exception that the declared type of the return value is String rather than Variant.
Sotto il cofano (ho rimosso alcun paragrafi comportamento parsing) (e notare le differenze/Unicode ANSI)
CommandLineToArgvW funzione
Analizza una stringa e ritorna a riga di comando Unicode una serie di stringhe Unicode con terminazione null contenenti i singoli argomenti trovati in tale riga di comando e un conteggio di argomenti, simile ai valori di argv di runtime C standard e ai valori di argc.
sintassi
LPWSTR *CommandLineToArgvW( LPCWSTR lpCmdLine,
int *pNumArgs
);
Parametri
Questa funzione accetta righe di comando che contengono il nome del programma che si sia racchiuso tra virgolette o meno racchiuso tra virgolette.
CommandLineToArgvW ha una speciale interpretazione dei caratteri di barra rovesciata quando sono seguiti da un carattere di virgolette ("), come segue:
backslash
2n seguita da una virgoletta produrre n backslash seguita da una citazione mark
(2n) + 1 barre rovesciate seguite da una virgoletta producono nuovamente n barre inverse seguite da virgolette.
n rovesciate non seguite da virgolette producono semplicemente n. barre rovesciate.
GetCommandLine
recupera la stringa di riga di comando per il processo corrente.
LPTSTR WINAPI GetCommandLine(void);
processi di console ANSI scritti in C possono utilizzare gli argomenti argc e argv della funzione principale per accedere gli argomenti della riga di comando. Le applicazioni GUI ANSI possono utilizzare il parametro lpCmdLine della funzione WinMain per accedere alla stringa della riga di comando, escluso il nome del programma. Il motivo per cui main e WinMain non possono restituire stringhe Unicode è che argc, argv e lpCmdLine utilizzano il tipo di dati LPSTR per i parametri, non il tipo di dati LPTSTR. La funzione GetCommandLine può essere utilizzata per accedere alle stringhe Unicode, poiché utilizza il tipo di dati LPTSTR.
Per convertire la riga di comando in una matrice di stringhe in stile argv, chiamare la funzione CommandLineToArgvW.
Nota Il nome dell'eseguibile nella riga di comando che il sistema operativo fornisce a un processo non è necessariamente identico a quello nella riga di comando che il processo chiamante attribuisce alla funzione CreateProcess. Il sistema operativo può anteporre un percorso completo a un nome eseguibile fornito senza un percorso completo.
Gli argomenti con spazi devono essere citati. –
'Instr (Ag," ") = True' viola la regola" Non confrontare mai con True/False "(http://blogs.msdn.com/b/ericlippert/archive/2004/07/15/184431.aspx) . –
Anche il secondo blocco di codice richiede un 'End If'. – Bond