需求
最近沉迷图书馆编程,这当然需要一定的便携性了。PuTTY这个软件不知道把数据存在了哪里,反正我是没找到的。换了机器后,就只能重新配置了。对于半个程序员来说,这当然令人不爽了。于是研究了一下PuTTY的官方文档。
PuTTY版本:0.7.0。
有兴趣的朋友可以看一下我在一译上开的合作翻译文档。一译是个好网站,免费打一波广告。
配置文件存储
先上文档:在文件中存储配置。
这基本上就是文档给出的文件了,稍加修改添了个路径。
@ECHO OFF
F:
cd \anywhere\putty
regedit /s putty.reg
regedit /s puttyrnd.reg
start /w putty.exe
regedit /ea new.reg HKEY_CURRENT_USER\Software\SimonTatham\PuTTY
copy new.reg putty.reg
del new.reg
regedit /s puttydel.reg
首先采用@echo off
关闭了回显,省得有一团乱七八糟的屏幕输出。
然后F:
切换驱动器。Windows的切换驱动器的命令很诡异。
cd
命令切换到工作目录。
regedit
执行注册表操作。
可以看到还有两个辅助文件。
start
命令执行具体的打开PuTTY的操作。
regedit
导出我们所需要的注册表。
copy
进行原始文件的覆盖。
del
进行临时文件的删除。
regedit
进行注册表的删除。
具体的文件内容请查文档。
完全的绿色版哦,完全不会在注册表中有任何残留。不过细心一点的应该可以发现,它把之前的注册表项删除了,所以如果已在本地装了PuTTY的电脑,慎用此脚本。自己写一个备份嘛,也不难的是不是。记得用管理员身份打开哦。
如果我能配置好我的文件分享系统,我会把做好的便携版上传上来的。
第二代脚本
把功能分散开可能会更好一点吧?至少我不希望每次都要通过管理员身份打开。少一步操作是一步操作对吧?
需求
添加三个功能:
- 注册表导入
- 注册表导出
- 添加快捷方式
有好几年不写BATCH了,不知道写得怎么样。
为了这么个小东西上git有点费劲了,直接贴代码了。
@echo off
:: 切换路径到文件所在路径
set dirpath=%~dp0
set dirdrive=%dirpath:~0,2%
set dirpath=%dirpath:~2%
%dirdrive%
cd %dirpath%
:: 选择功能
:choice
choice /c:123456 /m 写入,导出,清理,创建快捷方式,开始程序,退出
if errorlevel 6 goto exit
if errorlevel 5 goto run
if errorlevel 4 goto shortcut
if errorlevel 3 goto clear
if errorlevel 2 goto out
if errorlevel 1 goto in
goto exit
:: 取消操作之后
:cancel
echo 未确认,已取消操作并返回。
goto choice
:: 将PuTTY的注册表项导出为文件
:out
choice /c:yn /m 即将用注册表数据覆盖本地数据,请确认
if errorlevel 2 goto choice
echo 注册表导出开始,请同意管理员权限。
regedit /ea %~dp0\putty.reg HKEY_CURRENT_USER\Software\SimonTatham\PuTTY
echo 注册表导出结束。
echo.
goto choice
:: 清理注册表
:clear
set /p confirm=即将删除注册表中的项目,请确认[Y/N]:
if NOT %confirm%==Y echo 未确认。已取消操作并返回。
if NOT %confirm%==Y goto choice
echo 注册表清理开始,请同意管理员权限。
regedit /s %~dp0\puttydel.reg
echo 注册表清理结束。
echo.
goto choice
:: 将PuTTY的注册表项从文件导入到注册表
:in
echo 注册表写入开始,请同意管量员权限。
regedit \s %~dp0\putty.reg
echo 注册表写入结束。
echo.
goto choice
:: 创建快捷方式
:shortcut
echo 创建快捷方式开始。
set /p config=请输入配置项的名称
echo start putty.exe -load %config% > %config%.bat
echo 创建快捷方式结束。
echo .
goto choice
:: 开始程序
:run
start putty.exe
goto choice
:exit
echo 程序退出。
exit
2018/8/27进行了一些优化。
好的,写了一个小时,我想念我的Python了。垃圾Batch再见。
居然支持Batch的高亮,意想不到啊。
做好了的东西放在了这里,很简陋,强烈不建议下载。
命令行SSH公钥身份验证
附送一点东西。如果单纯想用命令行进行一个ssh验证,这就很easy了,现成的接口。
putty.exe -ssh -l <user name> -i </path/to/your/key.ppk> <server host>
# 添入参数,就是:
putty.exe -ssh -l wolf -i F:\putty\key.ppk xxx.xxx.xxx.xxx