在 PowerShell 中更改工作目录
许多标准命令提示符 (CMD) 命令在 Windows PowerShell 环境中工作。PowerShell 环境使用别名将这些命令从最基本的命令(如 ping
仍然适用于 Windows PowerShell 的 CMD 命令的一个示例是更改目录命令或 cd
和 chdir
。
虽然我们可以在 Windows PowerShell 中使用旧命令 cd
和 chdir
,但最好在特定情况下使用它的 PowerShell cmdlet Set-Location
来构建正确和清晰的代码。
使用 Set-Location
Cmdlet 更改 PowerShell 中的工作目录
Set-Location
cmdlet 类似地将工作目录设置到指定位置,就像它的旧版本 cd
和 chdir
。此 cmdlet 与旧命令的细微差别在于 Set-Location cmdlet 可以方便地同时更改 CMD.EXE 无法执行的工作驱动器和目录。
如果我们需要在命令提示符中将我们的工作目录更改为另一个驱动器,我们仍然需要先输入 <drive letter>:
,然后启动我们的 cd
和 chdir
命令来更改工作目录路径。
命令提示符:
C:\> cd C:\Temp
C:\Temp> cd D:\Docs
C:\Temp>
#To change the working drive, type the drive letter
C:\Temp> D:
D:\>
PowerShell:
PS C:\> Set-Location C:\Temp
PS C:\Temp> Set-Location D:\Docs
PS D:\Docs>
Set-Location
cmdlet 还因其附加参数而不同于其旧命令。
以下是一些示例。
Set-Location -Path C:\Temp
在上面的示例片段中,-Path
参数将指定我们脚本环境的新工作目录。但是,如果你的路径有空格,请记住用单引号 (''
) 或双引号 (""
) 将它们括起来。
Set-Location -Path "C:\Temp\Temporary Documents"
Set-Location
cmdlet 中另一个有用的参数是 -PassThru
参数。此参数将返回新的工作目录,我们可以使用该目录将返回的值存储到变量中。
示例代码:
$newDir = Set-Location -Path C:\Temp -PassThru
Write-Output $newDir.path
输出:
C:\Temp
如果只有 -PassThru
参数,你也只能访问 Set-Location
cmdlet 的完整属性列表。
示例代码:
Set-Location -Path G: -PassThru | fl *
输出:
Drive : G
Provider : Microsoft.PowerShell.Core\FileSystem
ProviderPath : G:\
Path : G:\
最后,除了 cd
和 chdir
,Windows PowerShell 还使用 sl
作为 Set-Location
的另一个别名。你可以将其用于更快、更流畅的脚本编写方法。
sl -Path C:\Temp
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn