2017-12-22 3 views
0

現在のスクリプトを実行パスに設定しようとしています。 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:  
+2

あなたは '' - silent''に余分なスペースを持っています – BenH

+2

次の行には 'Parent 'と' -'が付きました。私はコードを編集して1行に戻しました。何が起こっているのかを説明し、エラーメッセージのテキストに貼り付けてください。 'Pop-Location'を忘れないでください。 – lit

+1

あなたのコードが「うまくいかない」のはどうですか?どのような行動が期待されていますか、実際に行動がどのように違うのですか?正確であるようにしてください。私たちはあなたのコンピュータの前に座っていないので、あなたが私たちにそれを説明しない限り、あなたが見ているものは見えません。 –

答えて

0

更新された問題については、現在のディレクトリに自分の実行ディレクトリを完全に設定することができます。これで私のコンソールアプリケーションは現在の作業ディレクトリを調べます。

[Environment]::CurrentDirectory = $PWD 
関連する問題