現在のスクリプトを実行パスに設定しようとしています。 JSONファイルを読んでいます。私のapp.exe
は利用可能なすべてのJSONファイルをリストします。このスクリプトをC:\my\proj
から起動します。私のホームパスはC:\Users\EIM
と表示されています。次のスクリプトで何が問題になっていますか?デバッグしても、$cureentDir
の値はC:\my\proj
です。私はそれが今取り組んでいる非常に単純なPowerShellスクリプトが不明な理由で動作していません
更新された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:
あなたは '' - silent''に余分なスペースを持っています – BenH
次の行には 'Parent 'と' -'が付きました。私はコードを編集して1行に戻しました。何が起こっているのかを説明し、エラーメッセージのテキストに貼り付けてください。 'Pop-Location'を忘れないでください。 – lit
あなたのコードが「うまくいかない」のはどうですか?どのような行動が期待されていますか、実際に行動がどのように違うのですか?正確であるようにしてください。私たちはあなたのコンピュータの前に座っていないので、あなたが私たちにそれを説明しない限り、あなたが見ているものは見えません。 –