在PowerShell中,如何动态读取运行脚本所在的驱动器(字母),然后将该驱动器设置为当前位置,以便:
例如,在执行之前,如果当前位置为C:驱动器,即PowerShell命令提示符显示“ C:\”,而我的脚本位于“ D:\ ps_scripts \ test.ps1”中,则所有相对路径位于该脚本应在D:驱动器中使用(并创建文件/文件夹)。
基本上,我正在开发一个安装程序脚本,该脚本应将应用程序安装在存储脚本的驱动器中(即,它必须是“相对”,而不是“绝对/固定”驱动器)。
TIA
答案 0 :(得分:0)
经过一番挣扎和几次“尝试和错误”之后,我设法编写了以下脚本,该脚本能够设置仅驱动器的当前位置(忽略其余路径),以匹配驱动器正在运行的脚本位于:
Write-host ('$PSScriptRoot: ' + $PSScriptRoot) #Checking full path of own running script.
$drive = ((Get-Item $PSScriptRoot).PSDrive.Name) #Getting drive letter of running script.
Set-Location -Path "$($drive):\" #Setting Disk-Drive on PS-Cmd-Prompt.
注意:我在最后一行中挣扎/出错,因为我忘记了将$drive
内的$()
变量括起来进行评估,即将其转换为 表达 ,我很快就做到了,瞧!
希望这对其他人有帮助。