最新のマシン状態にアクセスするには、Powershellまたはcmdプロンプトをいつ再起動する必要がありますか?


1

誰もPowershellやcmdプロンプトを再起動する必要がある理由/理由を説明できますか?

たとえば、最新のマシン状態で作業するには、次の後にPowershellを再起動する必要があります。

1)パスなどのシステム環境変数の編集

2)npmモジュールなどのインストール

3).txtなどのファイルまたはVSCodeプロジェクト内のファイルの編集

前もって感謝します!

回答:


2

一般に、環境が変更された場合にのみシェルをリロードする必要があります。一般的には迅速で簡単であり、基本的に動作することが保証されています。しかし、それは迷惑であり、あなたの行動が厳密に必要ではないことに依存します。

CMDとPowershellは両方とも、起動時にユーザー/システム環境変数を読み取り、それらを現在のシェルに適用します。このシェル内からPATHなどの値を変更すると、新しいシェル(CMDまたはPOSH)で使用されるデフォルト値が更新されるだけで、通常は現在のシェル環境は変更されません。

PATHなどは現在のシェル内で変更できますが、CMDとPOSHでは異なる方法で行われます。これをコマンドプロンプトで実際に実行する簡単なデモを次に示します。

CMDプロンプトを開き、これらをコマンドに実行してデモをセットアップします。

C:\>mkdir c:\pathtest
C:\>echo @echo hello > c:\pathtest\sayhello.cmd

c:\ pathtestに切り替えて実行するとsayhello、期待どおりに動作し、画面に「hello」と出力されるはずです。

C:\>cd c:\pathtest
C:\pathtest>sayhello
hello

ここで、ディレクトリをルートに戻し、sayhello再度実行すると、コマンドが認識されないというエラーが表示されます。

C:\pathtest>cd ..
C:\>sayhello
'sayhello' is not recognized as an internal or external command,
operable program or batch file.

魔法のように、以下は現在のシェル(のみ)のPATHを更新してincludeしc:\pathtestsayhelloどこからでも実行できるようにします。

C:\>SET PATH=%PATH%;c:\pathtest
C:\>sayhello
hello

CMDプロンプトを閉じて、新しいプロンプトを開くと、PATHステートメントは元の値に戻り、機能しsayhelloなくなります。(c:\pathtest今すぐ削除することもできます)。

同じことがPowershellにも当てはまります-組み込みの$ env変数を操作して、現在のセッションだけのPATHなどを変更できます。

元の質問に戻ります。

たとえば、最新のマシン状態で作業するには、次の後にPowershellを再起動する必要があります。

1)パスなどのシステム環境変数の編集

2)npmモジュールなどのインストール

3).txtなどのファイルまたはVSCodeプロジェクト内のファイルの編集

  1. 環境変数が変更された場合(PATHを変更するものをインストールするなど)、シェルを再設定するのが最も簡単な修正方法ですが、上記のように、変更内容がわかっている場合はこれを回避し、現在のシェルに手動で適用できます。

  2. npmモジュールはファイルシステム上にあるため、PATHなどを変更している場合を除き、シェルをリロードして変更を確認する必要はありません。

  3. 上記のように、エディターで保存をクリックすると、そのデータがディスクに書き込まれます。POSH / CMDを実行すると、実行時にインタープリターによってディスクから読み取られます。


素晴らしい答え。乾杯。
dillon.harless

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.