私は単純な環境設定cmdスクリプトを作成しています。私はdoskey
を使ってさまざまなエイリアスとマクロを設定しています。私が取り組んでいる環境にはさまざまなリポジトリがあり、人気のあるディレクトリをすばやくナビゲートするためのマクロをいくつか作成したかったのです。実行時にdoskeyを使って環境変数を評価する
私は現在、次のしている:私は起こるだろう期待していた
@echo off
Setlocal EnableDelayedExpansion
set PROJECTS_PATH=%SystemDrive%\Projects
echo. Updating path...
REM Update PATH here
echo. Setting up macros...
doskey np="%SystemRoot%\System32\notepad.exe" $*
doskey np+="%ProgramFiles(x86)%\Notepad++\notepad++.exe" $*
doskey ..=cd ..
doskey trunk=set PROJECT_ROOT=%PROJECTS_PATH%\Trunk ^& cd "!PROJECT_ROOT!"
doskey trunk2=set PROJECT_ROOT=%PROJECTS_PATH%\Trunk2 ^& cd "!PROJECT_ROOT!"
doskey root=cd "%PROJECT_ROOT%"
doskey tools=cd "%PROJECT_ROOT%\tools"
何が私が遅れ拡張を使用して、この新たに設定した変数に移動し、その後、PROJECT_ROOT
変数を設定するtrunk
マクロを使用するということでした。その後、trunk2
コマンドを使用すると、PROJECT_ROOT
変数がリセットされ、その場所に移動します。最後に、PROJECT_ROOT
変数が動的に設定されている場合、root
とtools
のマクロは、現在使用しているプロジェクトのルートに関係なく同じになる可能性があります。
マクロを作成すると、PROJECT_ROOT
が評価されているように見えるため、残念ながらこれは機能しません。マクロtrunk
を実行すると変数が設定され、次にcd ""
が実行されます。
PROJECT_ROOT
変数が変更された場合にマクロを再評価する方法はありますか?
DOSKEY.exe- DOSプロンプトでコマンドを呼び出して編集し、マクロを作成します。基本的には、バッチファイルからDoskeyマクロを実行することはできません。 – Squashman
上記のスクリプトは、cmdプロンプトを開いて自分の環境を設定するとすぐに呼び出されます。申し訳ありませんが、正確に何を指摘しようとしているのか分かりません。 – Fizz