是否可以从程序内部检索Powershell shell中的#参数?

w1jd8yoj  于 2023-01-26  发布在  Shell
关注(0)|答案(1)|浏览(109)

我正在编写一个程序prog.exe,它检索传递给它的所有参数(以“句子”的形式,而不是独立的参数)。
我刚刚意识到,在某些情况下,只检索行的一部分,这是当存在#parameters时:

PS > ./prog.exe this is a #nice sentence

只有thisisa被检索到。如果我不使用#,我会得到所有的#。我想这是因为#后面的所有内容都被Powershell解释为注解。
是否有一种方法可以检索命令行中的所有内容
如果这样做有什么不同,我会在Go语言中编写代码,并通过os.Args[1:]获取参数。

cnjp1d6j

cnjp1d6j1#

您可以通过显式引用输入参数来防止PowerShell将#解释为注解标记:

./prog.exe one two three '#four' five

不过,还有一种更好的方法,尤其是在不控制输入的情况下:将参数拆分为单独的字符串,然后在包含它们的数组上使用splatting operator @

$paramArgs = -split 'one two three #four five'
./prog.exe @paramArgs

最后,在命令上下文中使用--%解析结束标记将导致同一行上的后续参数 * 按原样 * 传递,而不解析语言语法:

./prog.exe --% one two three #four five

相关问题