Windows のシェルのコンテキストメニューを拡張する場合 (例: ディレクトリに「ここでコマンドを開く」プロンプトを追加する場合)、レジストリに「command」キーを作成する必要があります
この ‘command’ キーの値は、どうやら有効なコマンドラインを指定することができます
どの’特別な変数’がこのコマンドラインで使用できるのか知りたいです
例えば、ディレクトリのコンテキストメニュー(*)からcmdウィンドウを開くには、以下のコマンドを使用します
cmd.exe /e:on /f:on /s /k pushd "%V"
%V
が実際に何を意味するのか、あるいはそのような変数の完全なリストが何であるのかについての言及が見当たりません
(*) このために以下のレジストリキーが作成されます
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmdshell]
@=Open Command Prompt Here"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmdshell\command]
@="cmd.exe /e:on /f:on /s /k pushd \"%V\""
52 Gio 2010-05-02
ショートカットメニューの拡張 MSDN の記事に Chris Guzak さんのコメントがあります
%* – すべてのパラメータに置き換えます
2 番目のパラメータ以降のすべてのパラメータで置き換えます
0 または %1 – 最初のファイル・パラメータ。例えば、”C:Users\Eric\DesktopNew Text Document.txt”.一般的に、これは引用符でなければならず、アプリケーションのコマンドライン解析では、名前にスペースがあるファイルや異なるコマンドラインパラメータを区別するために引用符を受け入れるべきです(これはセキュリティのベストプラクティスであり、MSDNで言及されていると私は信じています)
%<n> (<n> は 2-9) – n番目の パラメータに置き換えます
%s – コマンドを表示します
h – ホットキー値
i – 共有メモリ・ハンドルに格納されている IDList がここに渡されます
l – 最初のパラメータの長いファイル名の形式。Win32/64 アプリケーションには長いファイル名が渡され、Win16 アプリケーションには短いファイル名が渡されることに注意してください。l を指定することで、アプリケーションの種類を調べる必要がなくなるため、%l を指定することをお勧めします
d – 最初のパラメータのデスクトップ絶対解析名 (ファイル・システム・パスを持たない項目の場合)
v – none である動詞の場合は、すべてを意味します。パラメータが指定されていない場合、これは作業ディレクトリです
w – 作業ディレクトリ
したがって、%Lまたは%lが好ましい
http://www.robvanderwoude.com/ntstart.phpも参照してください
65 juze 2012-09-13
この質問に興味をそそられたので、いくつか実験してみました。私はC:\iso
というフォルダを持っています。右クリックしてみてわかったのは
D = C:\iso
H = 0
I = :115057472:7932
L = C:\iso
S = 1
V = C:\iso
W = C:\
I
は、毎回異なる数値を返していました。H
は常に0、S
は常に1でした。D
, L
, V
はすべてターゲットフォルダでした。W
は対象フォルダの親でした。誰かこれを拡大して教えてください
参考:以下のレジストリエントリを使ってテストしてみました
[HKEY_CLASSES_ROOT\Directory\shell\testcmd]
@="Test Command Window Directory"
[HKEY_CLASSES_ROOT\Directory\shell\testcmd\command]
@="cmd.exe /k \"echo %A`%B`%C`%D`%E`%F`%G`%H`%I`%J`%K`%L`%M`%N`%O`%P`%Q`%R`%S`%T`%U`%V`%W`%X`%Y`%Z\""
(区切り文字には ` を使用しています)
14 BillP3rd 2010-08-28
/k
は以下の文字列で指定されたコマンドを実行するのでpushd %V
、引数pushdが受け付ける唯一の引数pushdが受け付けるはパスであるので、%V
右クリックしたフォルダのパスを含む変数がエクスプローラで配信されることになります
3 Nifle 2010-05-02
V が何を意味するのか、あるいはそれらの変数のリストを見つけるのは確かに難しいですが、Google で調べてみると、%L も存在するようです。プロンプトに %V や %L 以上を渡す必要はないと思いますが、他に有用な情報はないと思います。V はディレクトリ名、%L はファイルの場所です。疑問があるときは ‘echo’ を実行すると良いでしょう
2 Tamara Wijsman 2010-05-02