powershell - 使用驱动器号通配符启动进程

标签 powershell powershell-3.0

我有一个始终位于用户桌面上的文件,但是,根据机器的设置方式,桌面可能位于 C 驱动器或 D 驱动器上。

以下是我尝试使用的内容。 (Get-Location).Drive.Name 本身将返回我机器上的 C 驱动器。但是,如果我将它组合成完整的代码行来启动程序,它就不起作用。

我做错了什么?

$userName = [Environment]::UserName
Start-Process ((Get-Location).Drive.Name)\Users\$($userName)\Desktop\VIPHorizon\Service_Desk.url

最佳答案

虽然另一个答案是正确的,您缺少一个冒号,但仅仅添加它是不够的。

如果你尝试用冒号运行它,你会得到另一个错误,如下所示:

表达式或语句中出现意外标记“:\Users”。

为了解决这个问题,您需要将整个内容用引号引起来。

"((get-location).Drive.Name):\Users\$($userName)\Desktop\VIPHorizo​​n\Service_Desk.url"

然后你会发现((get-location).Drive.Name)是直接写入字符串中的,而不是被替换掉。这可以通过在调用前加上美元符号来解决,就像您已经为 userName 所做的那样。

"$((get-location).Drive.Name):\Users\$($userName)\Desktop\VIPHorizo​​n\Service_Desk.url"

关于powershell - 使用驱动器号通配符启动进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51500314/

相关文章:

powershell - 在 Powershell 中获取字符串的二进制值

regex - 如何使用 Windows 命令行工具或批处理文件从日志文件中提取行?

powershell - 测试命令匹配结果为 false 或 true

powershell - 我曾经使用此脚本一次从注册表中卸载Office 2013,但现在无法正常工作

powershell - 在 Windows 上使用 7-zip 通过管道压缩为 tar.xz

powershell - 我们如何在终端中处理 Visual Studio Code 中的问题

powershell - 创建Powershell哈希表并导出到Excel

image - Powershell 按钮图像

powershell - Powershell有时输出目录路径的方式有所不同

powershell - 捕获工作流中的错误