コマンドプロンプトで次の行を直接実行すると、予想される出力が表示されます。私は、.ps1
ファイルから.cmd
ファイルに同じコマンドを実行した場合powershellから.cmdを呼び出すときにPATH変数が空です
echo %PATH%
> C:\Program...
はしかし、その後、PATH
は空です。
# program.ps1
python --version
Write-Output $env:PATH
& .\command.cmd
# command.cmd
python --version
echo %PATH%
.\program.ps1
> Python 3.5.2
> C:\Program...
> 'python' is not recognized as an internal or external command
> ECHO is on.
はなぜPATH
変数を払拭PowerShellスクリプトからコマンドを実行していますか?
EDIT
上記の例は、問題の根本を取得しようとする簡素化されました。問題は、バッチファイルから実行すると、PATH
上のものが見つかりません。たとえば、私はpython
を使用することができません。私は、私が見ているものをより詳細に例を更新しました。
Windows 10でPowerShell 5.1で再現できません。パス全体がエコー表示されます。 '.ps1'ファイルから' echo $ env:PATH'を実行して、そこにパスが既に空であるかどうか確認してください。 ( '.cmd'からの出力に' echo 'が含まれていることにも注意してください。'%PATH% 'が本当に空であれば、コマンドファイルは' ECHO is on'を生成しなければなりません。ファイルへのパスを指定する '。\ command.cmd'は必要ありませんか? –
使用しているOSとPowerShellのバージョンは何ですか? PS5.1をW10で使ってもうまく動作します。 –
その2番目。私もそれを再現することはできません。私は、command.cmdがまったく実行されないという問題があると推測します。 – Igor