3

次の方法で、このエントリを USB スティックのコンテキスト メニューに追加しましたautorun.inf

[AutoRun]
shell\pageant=Activate SSH Key
shell\pageant\command=PuTTY\pageant.exe PuTTY\davids.ppk

PuTTY\pageant.exeとはどちらもPuTTY\davids.ppkUSB スティック上のファイルであり、そこから取得する必要があります。

これをスティックのルートからシェルで実行すると、意図したとおりに動作します。ただし、メニューから起動すると、キーをロードしようとしますC:\Windows\system32\PuTTY\davids.ppkProcess Monitorで確認)。

単純な cmd スクリプトを使用しようとすると、次の出力が得られました。

    C:\Windows\system32>cd パテ
    Das System kann den angegebenen Pfad nicht finden.

    C:\Windows\system32>pageant.exe davids.ppk
    Der Befehl "pageant.exe" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.

これを適切に機能させる方法はありますか?ドライブ文字を渡すか、エクスプローラーにスティックを作業ディレクトリとして使用させることができるはずですが、方法がわかりません。外出先でスティックを使用したいので、ローカル ドライブ文字をハードコーディングするのは避けたいと思います。

4

2 に答える 2

3

最も簡単な解決策は、これを行うためのバッチ ファイルを作成することだと思います。このような名前の何かactivatekey.cmd

REM switch to the directory containing this script
for %%a in (%0) do cd /D %%~da%%~pa

cd PuTTY
pageant.exe davids.ppk

activatekey.cmdファイルを USB スティックに置き、次のように変更autorun.infします。

[AutoRun]
shell\pageant=Activate SSH Key
shell\pageant\command=activatekey.cmd
于 2009-05-05T07:56:31.027 に答える
1

「パス」システム変数を読み取るようです。:(ドライブをパスに追加することはできますが、ドライブ文字を取得することが問題です.:-(

更新 1 : VB スクリプトを使用してドライブ文字を取得できます。

更新 2 : はい、できると思います。このページをチェックしてください。

更新 3: スクリプトをテストしました。それはうまくいきます。

Dim  oDrive
Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
For Each oDrive In oFSO.Drives
WScript.Echo "Drive Letter" , oDrive.DriveLetter
WScript.Echo "Drive Type" , oDrive.DriveType
Next

複数の USB ドライブを区別するには、何らかのファイル存在チェック方法を使用します。

于 2009-05-05T07:32:06.140 に答える