我正在尝试将当前脚本设置为执行路径。我正在阅读可用的JSON文件。我的app.exe
列出了所有可用的JSON文件。当我从C:\my\proj
启动此脚本时。它将我的主路径显示为C:\Users\EIM
。以下脚本有什么问题?即使我调试它,我也可以看到$cureentDir
值为C:\my\proj
。我正在使用Windows 10和PowerShell版本5。
$scriptpath = $MyInvocation.MyCommand.Path;
$cureentDir = Split-Path $scriptpath;
Set-Location -Path $cureentDir;
$exe = "C:\proj\app.exe"
$arguments = '- silent'
Push-Location (Split-Path -Path $MyInvocation.MyCommand.Definition -Parent)
$proc = [Diagnostics.Process]::Start($exe, $arguments)
$proc.WaitForExit();
更新
现在正在运作。但是有一个新问题。我的应用和脚本都在C:\ proj \ location。我的控制台应用程序列出了所有可用的JSON文件,供用户从当前位置进行选择。但现在该应用程序列出了C:\ WINDOWS \ system32中的文件。为什么它不从C:\ proj列出。如果我通过双击启动它,它会显示当前位置的文件。如何解决这个问题
Available bootstrap files:
0. C:\WINDOWS\system32\DefaultQuestions.json
1. C:\WINDOWS\system32\nv-vk64.json
Select:
答案 0 :(得分:0)
对于更新的问题,将我的执行目录设置在当前目录中以下工作完美。现在我的控制台应用程序查看当前的工作目录。
[Environment]::CurrentDirectory = $PWD