3

我已通过以下方式将此条目添加到 USB 记忆棒的上下文菜单中autorun.inf

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

两者PuTTY\pageant.exePuTTY\davids.ppk都是 U 盘上的文件,应该从那里获取。

当我从棒的根部在外壳中运行它时,它按预期工作。但是从菜单启动它会尝试从中加载密钥C:\Windows\system32\PuTTY\davids.ppk(使用Process Monitor检查)。

尝试使用简单的 cmd 脚本会导致以下输出:

    C:\Windows\system32>cd PuTTY
    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放入您的 U 盘中,然后将其更改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 回答