web-dev-qa-db-ja.com

Windowsのショートカットを使用してアプリケーションの環境変数を設定できますか?

アプリケーションの存続期間ごとに [〜#〜] path [〜#〜] 環境変数にディレクトリを追加できるはずなのですが、その方法がわかりませんこの。リンクされているアプリケーションで使用するために、PATHの現在の値にディレクトリを追加するWindowsショートカットにパラメーターを追加することは可能ですか?

36
user366203

ショートカットにバッチファイル(.cmd)を実行させます。

  • 環境変数を設定します
  • アプリを実行する
  • 「START」を使用してアプリを実行すると、別のプロセスでアプリが起動しますが、環境がコピーされます。アプリが完了するのを待つ必要はありません。
  • これで、バッチファイルを終了できます。

次のようになります。

@echo off
set path=%path%;C:\My Folder
start "Path to my exe"
29
GvS

ここで説明されているように: http://www.labs64.com/blog/2012/06/set-environment-variables-in-windows-shortcut/ batファイルがなくても実行できます。

ターゲットを次のように設定します。

C:\Windows\System32\cmd.exe /c "SET path=%path%&& START /D ^"C:\Program Files (x86)\Notepad++^" notepad++.exe"

もう一度閉じる前に、コマンドプロンプトが一瞬表示されないようにするには、次のように設定する必要があります。

Run: Minimized 

ショートカットタブ

(Windows 7、Windows 10でテスト済み)

29
Jens

バッチファイルに直接リンクすると、おそらく避けたい迷惑なコンソールが生成されます。これは回避策です。より簡単な解決策は、リンクで「最小化して開始」オプションを使用することですが、Windows 7では、一時的なコンソールがタスクバーを照らします。

start.bat:

@echo off
IF "%1" == "" GOTO Error
IF "%2" == "" GOTO Error
IF NOT EXIST %2 GOTO Error
SET PATH=%1;%PATH%
start %2
GOTO End

:Error
echo Problem!
pause

:End

ショートカットターゲット:

MyPath = "C:\MyApp"
Set Shell = WScript.CreateObject("WScript.Shell")
cmd = "start.bat " & MyPath & " MyApp.exe"
Shell.Run cmd, 0, false
Set env = Nothing
Set Shell = Nothing
4
Will Bickford

これはPowerShellで簡単に実行できます。 PowerShellは、$env:接頭辞を使用して環境変数を公開します。たとえば、カスタムJava_HOMEおよびPATH環境変数を使用してTeamSQLを起動したいので、PostgreSQLデータベースに接続できます。 TeamSQLは、この目的のためにJDK/OpenJDKに依存しています。

まず、ビルド済みのOpenJDKをダウンロードし、7-ZipでZipアーカイブを抽出しました。

次に、PowerShellで次のコマンドを実行しました。

$env:Java_HOME='C:\Users\TrevorSullivan\Downloads\openjdk\jdk-11.0.2\'
$env:PATH += ';%Java_HOME%\bin'

# Launch TeamSQL
& C:\Users\TrevorSullivan\AppData\Local\Programs\TeamSQL\TeamSQL.exe

そのPowerShellコードを.ps1ファイルに保存すると、PowerShellで実行できます。子プロセスはPowerShellセッションから環境変数を継承するため、プログラムは問題なく動作します。

0
Trevor Sullivan