You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Powershell脚本与exe分存不同目录时如何实现跨目录调用运行

PowerShell跨目录调用独立exe修改方案

你原代码中使用的$currentpath指向脚本自身所在目录,只需将-FilePath参数的路径替换为exe实际存放的目录即可,以下是两类适配场景的修改方案:

方案1:固定目录配置(适合exe存放路径不会变更的场景)

如果所有可执行文件都统一存放在某个固定路径,直接定义exe根目录变量替换原有$currentpath即可,示例代码:

# 按实际存放路径修改右侧的根目录值即可
$exeBaseDir = "D:\企业安装包\公共可执行文件"
Start-Process -FilePath "$exeBaseDir\ClientSetup_111.exe" -ArgumentList $InstCmdLine -Wait -PassThru

方案2:相对层级配置(适合整套脚本+exe可整体迁移的场景)

如果整套文件需要经常拷贝到不同设备/目录运行,可通过PowerShell内置的$PSScriptRoot变量(自动指向当前运行脚本所在的文件夹)按相对层级定位到exe目录,无需每次修改硬编码路径。
示例场景:脚本存放于.\脚本集合\业务安装脚本,exe统一存放于.\脚本集合\公共可执行文件,代码如下:

# 按实际目录层级调整../的数量,../代表返回上一级目录
$exeBaseDir = Join-Path -Path $PSScriptRoot -ChildPath "../公共可执行文件"
# 拼接完整exe路径,Join-Path会自动处理路径分隔符,避免手动书写错误
$targetExePath = Join-Path -Path $exeBaseDir -ChildPath "ClientSetup_111.exe"
Start-Process -FilePath $targetExePath -ArgumentList $InstCmdLine -Wait -PassThru

注意事项

  • 支持配置本地路径、网络共享路径(如\\内网文件服务器\公共安装包),只需保证运行脚本的账号对目标目录有读取权限即可
  • 若路径包含空格,必须用英文双引号包裹路径字符串,避免PowerShell解析错误
  • 调试阶段可在调用Start-Process前添加Write-Host "调试用exe路径:$targetExePath",确认路径拼接正确后再执行正式流程

内容的提问来源于stack exchange,提问作者BriskBiru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 04:57:02