CMDLine()
Author: Jare
Added: 10. tammikuuta 2013 kello 14.21
Edited: 19. helmikuuta 2021 kello 20.16
Category: Järjestelmä
Description
Edit 19.2.2021: Mikäli kaipaat monipuolisempaa POSIX-tyylistä komentorivin parsintaa, katso juuri tekemäni CommandLineArguments-kirjasto GitHubista. Tosin se on monimutkaisempi käyttää kuin tämä vanha CMDLine(). https://github.com/Taitava/cb-CommandLineArguments
Palauttaa komentoriviltä halutun parametrin, toisin sanoen purkaa CommandLine()-funktion paluuarvon osiin älykkäästi.
Käynnistysparametrit erotetaan toisistaan välilyönnillä. Jos haluat käyttää välilyöntiä osana parametria, ympäröi parametri lainausmerkeillä. Jos haluat käyttää lainausmerkkiä osana parametriä, syötä \". Ja jos haluat käyttää kenoviivaa, syötä se tuplana: \\.
Funktion parametriksi annetaan halutun käynnistysparametrin numero alkaen ykkösestä. Funktio palauttaa parametrin ilman lainausmerkkejä, paitsi jos lainausmerkki on merkitty \".
Edit: Tein vielä funktion joka laskee parametrien määrän.
Code
Select all1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | Function CMDLine(index)
command_line$ = CommandLine()
command_line = Replace(command_line, "\\", Chr(1))
command_line = Replace(command_line, "\"+chr(34), Chr(2))
parameter$ = ""
old_char$ = " "
quote_open = False
current_index = 1
For i = 1 To Len(command_line)
char$ = Mid(command_line,i,1)
If char=Chr(34) Then
quote_open = Not quote_open
ElseIf char=" " And False=quote_open And old_char <> " " Then
current_index + 1
ElseIf current_index = index Then
parameter + char
EndIf
old_char = char
Next i
parameter = Replace(parameter, Chr(1), "\")
parameter = Replace(parameter, Chr(2), Chr(34))
Return parameter
EndFunction
Function CountCMDLineParameters()
command_line$ = Trim(CommandLine())
command_line = Replace(command_line, "\\", Chr(1))
command_line = Replace(command_line, "\"+chr(34), Chr(2))
old_char$ = " "
quote_open = False
current_index = 1
If command_line = "" Then Return 0
For i = 1 To Len(command_line)
char$ = Mid(command_line,i,1)
If char=Chr(34) Then
quote_open = Not quote_open
ElseIf char=" " And False=quote_open And old_char <> " " Then
current_index + 1
EndIf
old_char = char
Next i
Return current_index
EndFunction
|
Comments
No comments. You can be first!
Leave a comment
You must be logged in to comment.