mRemoteNG 命令行开关(Command-Line Switches)完整指南:从连接文件加载到界面重置
mRemoteNG 命令行开关Command-Line Switches完整指南从连接文件加载到界面重置【免费下载链接】mRemoteNGmRemoteNG is the next generation of mRemote, open source, tabbed, multi-protocol, remote connections manager.项目地址: https://gitcode.com/gh_mirrors/mr/mRemoteNGmRemoteNG 作为一款开源、多协议、选项卡式远程连接管理器支持在启动时通过命令行开关Command-Line Switches直接指定连接文件路径、重置被卡住的窗口与面板布局以及临时禁用会话自动重连。本文以官方文档 command_line_switches.rst 为骨架结合 StartupArgumentsInterpreter.cs 等源码实现逐一讲解每个开关的语法、别名、生效机制与典型使用场景帮助你在批量部署、故障恢复和自动化运维中精准控制 mRemoteNG 的启动行为。一、命令行开关总览mRemoteNG 在启动时读取Environment.GetCommandLineArgs()并交由StartupArgumentsInterpreter.ParseArguments()统一解析调用链见 Startup.cs。所有开关均不区分大小写参数名与参数值之间可以用空格、或:分隔且支持-、/或--前缀例如-cons:file.rdg、/cfile.rdg、--reset写法等价。下表为官方文档支持的完整开关清单开关别名作用/cons: PathToConnectionsFile/c: PathToConnectionsFile从指定路径加载连接文件/reset—重置窗口位置、面板与工具栏/resetpos/rp仅重置主窗口位置/resetpanels/rpnl重置所有面板Dock 面板布局/resettoolbar/rtbr重置所有工具栏位置/noreconnect/norc临时禁用对先前打开会话的重连注意/reset是三个独立开关/resetpos、/resetpanels、/resettoolbar的组合键源码中三个解析函数都会检查args[reset]见 StartupArgumentsInterpreter.cs即传一个/reset等价于同时执行三项重置。二、/cons与/c指定启动时加载的连接文件2.1 语法与支持的四种路径形式/cons: PathToConnectionsFile /c: PathToConnectionsFile路径可以是以下四种形式之一完整文件路径例如D:\backup\connections.rdg相对于当前工作目录的路径例如backup\connections.rdg相对于 mRemoteNG 应用程序目录的路径应用程序目录即GeneralAppInfo.HomePath其取值为可执行程序所在目录见 GeneralAppInfo.cs相对于 mRemoteNG 默认连接文件目录的路径默认连接文件目录由ConnectionsFileInfo.DefaultConnectionsPath定义值为SettingsFileInfo.SettingsPath见 ConnectionsFileInfo.cs。2.2 解析逻辑与路径探测顺序ParseCustomConnectionPathArg()见 StartupArgumentsInterpreter.cs的处理流程如下依次检查args[cons]与args[c]优先识别cons若给定路径本身是已存在的文件直接使用它否则尝试应用程序目录 路径存在则命中再尝试默认连接文件目录 路径存在则命中若以上都未命中则忽略该开关并继续正常启动不会报错中断。命中后解析器会同时设置OptionsBackupPage.LoadConsFromCustomLocation true与BackupLocation对应设置定义见 OptionsBackupPage.settings连接加载器随后据此读取自定义位置的文件而连接文件的后续读取入口在ConnectionsService.GetStartupConnectionFileName()见 ConnectionsService.cs它优先返回连接选项页中配置的ConnectionFilePath否则回退到默认文件。2.3 典型使用场景便携版与共享机器把连接文件放在 U 盘或共享目录用快捷方式固定启动参数确保每次打开的都是同一份连接库自动化与批处理在登录脚本、任务计划程序或 CI 环境里用一条命令携带连接文件启动例如mRemoteNG.exe /cons:D:\backup\connections.rdg mRemoteNG.exe /c.\confCons.xml恢复误操作若 GUI 内切换了连接文件导致异常可用/cons强制指定备份文件启动。三、/reset、/resetpos、/resetpanels、/resettoolbar布局与窗口重置这三个开关主要用于解决界面错乱类问题窗口跑到屏幕外、面板布局损坏、工具栏丢失等。开关别名底层生效方式/reset—等价于同时执行以下三项/resetpos/rp将窗口尺寸重置为 900×600、居中于主屏幕工作区、状态恢复为 Normal并退出 Kiosk 模式见 StartupArgumentsInterpreter.cs/resetpanels/rpnl设置App.Default.ResetPanels true/resettoolbar/rtbr设置App.Default.ResetToolbars true从源码看/resetpos直接写回MainFormLocation、MainFormSize、MainFormState与MainFormKiosk四个设置项因此它不仅能找回丢失的窗口还会顺带清除窗口全屏/Kiosk 状态/resetpanels与/resettoolbar则只是置位设置项由主窗体在初始化阶段消费这些标记来重建默认布局。使用建议当启用过面板/工具栏布局且重启后出现错位、空白或无法拖拽时优先执行mRemoteNG /resetpanels或mRemoteNG /resettoolbar窗口完全不可见时执行/resetpos不确定根因可直接用/reset一步到位。四、/noreconnect与/norc临时禁用会话自动重连4.1 语法与作用/noreconnect /norc该开关用于一次性临时关闭重新打开上次会话的行为。官方文档特别提示如果你在设置中启用了自动重连重启 mRemoteNG 后卡住或无法打开请用本开关启动。4.2 底层实现ParseNoReconnectArg()见 StartupArgumentsInterpreter.cs会把OptionsAdvancedPage.NoReconnect置为true设置定义见 OptionsAdvancedPage.settings。该设置项由高级选项页中的重新连接就绪时复选框chkNoReconnect见 AdvancedPage.Designer.cs绑定并在会话重连逻辑中作为判断依据相关读取见 ReconnectGroup.cs。需要强调的是与/reset*不同/noreconnect修改的是用户级设置项会随配置持久化因此它只是临时在命令行层面替你关闭该选项若想彻底恢复默认行为仍需在选项界面重新勾选或再次使用不带该开关的方式启动。五、参数解析器的通用规则进阶mRemoteNG 的命令行解析由 CmdArgumentsInterpreter.cs 实现理解它的规则有助于避免踩坑合法参数形态{-,/,--}param{ ,,:}(value)如-param1 value1、--param2、/param3:Test-:-work、/param4happy无值参数若参数后不带任何值会被记为true这正是/reset等布尔开关的判定基础引号剥离值两端的单引号或双引号会被自动移除因此含空格路径建议用双引号包裹如/cons:D:\my folder\conf.xml重复参数同一参数只保留第一个值后续重复的会被忽略解析失败兜底任何异常都会被捕获并写入日志Runtime.MessageCollector不会导致程序崩溃。另外仓库中的 CommandLineArguments.cs 提供了另一套构造命令行字符串的工具含反斜杠转义、引号包裹、Shell 元字符()%!^|转义等主要用于外部工具启动场景与启动参数解析互补可在编写自定义启动脚本时参考。六、常见问题与排查清单/cons路径未生效依次确认文件是否存在、路径是否含特殊字符加双引号、是否命中四种路径形式之一解析器静默忽略无效路径可查看日志中的 DebugMsg 判断是否进入loading connections from a custom path分支。窗口还是找不到/resetpos会把窗口重置为 900×600 并居中若依然不可见可再尝试/reset并检查是否为多显示器残留配置。面板布局反复错乱/resetpanels只重置布局标记若问题依旧可能是主题或分辨率变化所致建议升级前备份Settings。重连卡死怎么救用/noreconnect或/norc启动跳过重连进入界面后在工具 → 选项 → 高级中确认重新连接就绪时复选项按需关闭后重启恢复正常。组合使用以上开关可同时传入例如mRemoteNG /cons:D:\conf\prod.rdg /resetpanels /norc在无人值守场景下一次性完成路径指定、布局修复与重连禁用。七、小结mRemoteNG 的命令行开关虽少但个个实用/cons//c实现连接文件的灵活定位支持绝对路径、相对当前目录、应用目录与默认连接目录四种形式/reset*家族解决窗口与布局的故障恢复/noreconnect//norc则为卡死启动提供了逃生通道。结合 StartupArgumentsInterpreter.cs 的解析源码你可以确信每个开关的实际行为并在批处理脚本、快捷方式或远程桌面环境中安全组合使用它们。【免费下载链接】mRemoteNGmRemoteNG is the next generation of mRemote, open source, tabbed, multi-protocol, remote connections manager.项目地址: https://gitcode.com/gh_mirrors/mr/mRemoteNG创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考