我有命令$PSScriptRoot
的当前目录路径,假设该路径为
c:\abc\def\ghi\jkl\
现在我要去路径
c:\abc\
所以在powershell中有一条命令可以直接转到该路径?
答案 0 :(得分:1)
取决于您的实际需求:
1。转到特定的文件夹
cd C:\abc\
2。升三级
cd ..\..\..\
您也可以使用Set-Location
代替cd
。
答案 1 :(得分:1)
要从$PSScriptRoot
中提取第一级文件夹,请使用正则表达式。
RegEx ^(...[^\\]+).*$
用前三个字符(驱动器号,冒号和\)构建捕获组。
和至少一个非\
字符,但要尽可能多,因此要捕获第一级文件夹。
## Q:\Test\2018\06\22\SO_5095782.ps1
"`$PsScriptRoot is {0}" -f $PSScriptRoot
if ($PSScriptRoot -Match '^(...[^\\]+).*$') {
"First level folder is {0}" -f $Matches[1]
Push-Location $Matches[1]
}
示例输出(我有一个两行提示,带有时间和目录)
PoSh 12:44:10 Q:\Test\2018\06\22______________________
> .\SO_5095782.ps1
$PsScriptRoot is Q:\Test\2018\06\22
First level folder is Q:\Test
PoSh 12:44:15 Q:\Test_________________________________
使用sls / Select-String编辑简化版本和版本
if ($PSScriptRoot -Match '^(...[^\\]+).*$'){PushD $Matches[1]}
$PSScriptRoot|sls '^(...[^\\]+).*$'|%{Pushd $_.Matches.Groups[1].Value}
答案 2 :(得分:0)
您要做的是更改目录,使用PowerShell,您可以使用cd
cmdlet
在您的示例中,如果您指向
c:\abc\def\ghi\jkl\
去
c:\abc\
您将放置cd c:\abc\
另一个不错的资源是get-help
cmdlet。 get-help cd
也将提供一些有用的信息。