Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PowerShell Trim()也会在反斜杠之前修剪字母的问题_Powershell_Powershell 4.0 - Fatal编程技术网

PowerShell Trim()也会在反斜杠之前修剪字母的问题

PowerShell Trim()也会在反斜杠之前修剪字母的问题,powershell,powershell-4.0,Powershell,Powershell 4.0,我对PowerShell中的.Trim()有问题 所以,这里是我的脚本行 $path = 'C:\Projects\20190412_Release111.22.S2.FP\PowerShell' $trimpath = $path.Trim('\PowerShell') Write-Host $trimpath 修剪路径上的“\Powershell”时,输出应为: C:\Projects\20190412_Release111.22.S2.FP C:\Projects\20190412\u

我对PowerShell中的
.Trim()
有问题

所以,这里是我的脚本行

$path = 'C:\Projects\20190412_Release111.22.S2.FP\PowerShell'
$trimpath = $path.Trim('\PowerShell')
Write-Host $trimpath
修剪路径上的“\Powershell”时,输出应为:

C:\Projects\20190412_Release111.22.S2.FP C:\Projects\20190412\u release11.22.S2.FP 但实际产出是:

C:\Projects\20190412_Release111.22.S2.F C:\Projects\20190412\u release11.22.S2.F
“20190412_Release111.22.S2.F”的foldername中缺少了“p”,我想知道.trim()是否具有可变长度条件,这就是为什么它也要修剪“p”。

当您将字符传递到文件夹时,它将修剪任何符合模式的字符串

它正在从路径中删除“p”,因为您传递的输入字符串中有一个“p”。如果出于某种原因,在“PowerShell”一词之前有多个“P”,那么它也会删除所有这些:

$path = 'C:\Projects\20190412_Release111.22.S2.FPPPPPP\PowerShell'
$trimpath = $path.trim('\PowerShell')
# trimpath is 'C:\Projects\20190412_Release111.22.S2.F'

在这种情况下,我认为
$trimpath=$path.Replace('\PowerShell','')
更合适。

的可能副本更精确地说,它将修剪与任何传递的[char[]匹配的任意数量的字符。也就是说,将
l
加倍根本没有必要。对于这一点,分割路径不是比使用修剪功能更好的解决方案吗?谢谢,@Michael Hancock。这对我的故障排除很有帮助