使用PowerShell的问题进行按标签源安全的GET(Problems using powersh

2019-10-17 00:40发布

我试图使用PowerShell做一个使用包含空格的标签从srcSafe“搞定”。

我读过似乎是有关如何通过PARAMS W /空格exe文件的,但没有我尝试过无数作品的帖子。 我的问题似乎被正确提供的标签。

以下是CMD行版本(工作)。

ss get $/sandbox/TestSSCmdLine/* -R -I-N -VL"label space"

我简单的PowerShell的版本是:

ss get '$/sandbox/TestSSCmdLine/*' -R -I-N '-VL\"label space\"'

当我运行PowerShell的CMD我没有得到任何文件和$ lastexitcode是“100”。

回声ARGS说明了什么,我认为应该是正确的。

Arg 0 is <get>
Arg 1 is <$/sandbox/TestSSCmdLine/*>
Arg 2 is <-R>
Arg 3 is <-I-N>
Arg 4 is <-VL"label space">

PowerShell ISE中显示了相同的。

DEBUG: NativeCommandParameterBinder Information: 0 :  WriteLine   Raw argument string:  get $/sandbox/TestSSCmdLine/* -R -I-N "-VL\"label space\""
DEBUG: NativeCommandParameterBinder Information: 0 :  WriteLine   Argument 0: get
DEBUG: NativeCommandParameterBinder Information: 0 :  WriteLine   Argument 1: $/sandbox/TestSSCmdLine/*
DEBUG: NativeCommandParameterBinder Information: 0 :  WriteLine   Argument 2: -R
DEBUG: NativeCommandParameterBinder Information: 0 :  WriteLine   Argument 3: -I-N
DEBUG: NativeCommandParameterBinder Information: 0 :  WriteLine   Argument 4: -VL"label space"

只是为了迷惑的事情开始处理似乎工作:

$cmd = "ss.exe"
$args = "get", '$/sandbox/TestSSCmdLine/*', "-R", "-I-N", '-VL"label space"'
$proc = start-process $cmd $args -Wait -NoNewWindow -PassThru -WorkingDir $pwd
$proc.ExitCode

另外一个令人困惑的产品的事实回声ARGS现在显示的版本参数为:精氨酸4 <-VLlabel空格> - >注意不能有空格,也不会从CMD线工作。

感谢名单的任何帮助!

约翰A.

Answer 1:

cmd ,将已经使用引号,以确保label space作为的一部分获得通过-VL的说法。 自从Start-Process版本的结果论证工作-VLlabel space ,我会尝试打电话ss'-VLlabel space' ,没有任何嵌入引号(在顶部列出第三种选择这个答案 )。



文章来源: Problems using powershell to perform a source safe get by label