1

レジストリ エントリを追加して、ドロップボックス フォルダに同期するフォルダのシンボリック リンクを作成しようとしていますが、変数の 1 つ%~n1を展開するのに少し苦労しています。

バッチファイル/コマンドライン%~n1では、ファイルが指定されていない場合、ファイル名または最後のフォルダーに展開されますが、展開を拒否します。私は前に double を試し、最後%に tilda \~、 single と double をエスケープし%、それらのすべての組み合わせを試しました。
ソース: http://ss64.com/nt/syntax-args.html

Echo mklink /d "%HomeDrive%%HomePath%\Dropbox\%~n1" "%1"

この行は、フォルダーをバッチファイルにドロップすると機能します。


私の.regファイル/「コード」:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Sync with Dropbox"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /k mklink /d \"%%HomeDrive%%%%HomePath%%\\Dropbox\\%~n1\" \"%1\""
4

2 に答える 2

2

文字列型を追加してみてくださいREG_EXPAND_SZ
レジストリ値の種類

于 2013-07-04T16:18:46.873 に答える
0

%~ 構文は、パラメーターに対してのみ機能します。コマンドライン引数 (あなたが見つけたように) またはサブルーチンに渡される引数であるため、単純な echo ステートメントに対しては機能しません。これを回避する方法は、サブルーチンをスローすることであり、%~n1 はそれに渡された最初の項目に対して機能します。

于 2021-02-06T13:43:00.193 に答える