ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Windows Terminal 文件拖放:3 个场景让你不再手敲路径

Windows Terminal 文件拖放:3 个场景让你不再手敲路径 Windows Terminal 文件拖放3 个场景让你不再手敲路径【免费下载链接】terminalThe new Windows Terminal and the original Windows console host, all in the same place!项目地址: https://gitcode.com/GitHub_Trending/term/terminal在 Windows Terminal 中把资源管理器里的文件直接拖进终端窗口完整路径就会出现在命令行里路径含空格时还会自动加上引号。你不用再一个字一个字地敲长路径敲错一个字符导致命令失败的情况也会少很多。上图是 Windows Terminal 的界面文件拖放功能在任意窗格中都生效。快速上手打开 Windows Terminal在资源管理器中选中目标文件。把文件拖进终端窗口松开光标位置会出现该文件的完整路径。需要多个文件时按住 Ctrl 多选后再拖入路径之间以空格连接含空格的路径会被引号包起来。不需要任何额外配置。另外一个省事的入口在资源管理器里对文件按 CtrlC再在终端里按 CtrlV粘贴出来的同样是完整路径和拖放效果一致。它是怎么实现的你松手的那一刻窗口收到一条 WM_DROPFILES 消息控制台宿主在 src/interactivity/win32/windowproc.cpp 中捕获它并交给剪贴板模块处理。src/interactivity/win32/Clipboard.cpp 里的PasteDrop分两次调用系统 APIDragQueryFileW第一次询问路径长度第二次读取内容这样能保证路径完整、不被截断。写入输入缓冲前代码会检查路径里有没有空格有就整体包进引号if (wmemchr(str, L , len)) { str buffer.get(); til::at(str, 0) L; til::at(str, len - 1) L; }新版终端窗口TermControl还有一套独立的拖放处理见 src/cascadia/TerminalControl/TermControl.cpp多个文件的路径会按配置的连接符拼接经过路径转换后会统一使用单引号。把文件路径变成命令参数假设你要用 Python 处理一个 CSV 文件。直接在终端输入python process.py注意末尾的空格然后把sales.csv拖进窗口命令行变成python process.py C:\data\sales.csv如果文件在带空格的目录里比如C:\My Projects\sales.csv终端会自动补上引号你不需要自己判断哪里该加引号。多个文件一次拖入时它们之间用空格隔开可以直接跟在支持多参数的命令后面。在分屏布局里把文件丢进指定窗格上图是典型的分屏场景左边跑 PowerShell右边跑 WSL。文件拖放会落在你松手的那个窗格上路径直接粘贴进该窗格的输入行不用先切焦点再操作。分屏本身可以通过窗口菜单或命令面板创建和管理命令面板里还能搜索到各类窗格操作。一个实用组合左窗格开着git仓库目录右窗格跑构建命令把依赖的配置文件拖到右边窗格路径立即就位再敲后半段命令即可。在 WSL 里拿到可用的 Linux 路径拖放进 WSL 窗格时默认的 Windows 路径如C:\data\a.csv在 Linux 里并不存在。终端的配置文件支持两个与拖放相关的设置dragDropDelimiter控制多个路径之间的连接符pathTranslationStyle控制是否把 Windows 路径转换成对应环境的格式。转换后的路径会以单引号包起来避免 shell 解释路径里的特殊字符{ profiles: { defaults: { dragDropDelimiter: } } }配置入口在终端的设置界面Ctrl,打开设置 JSON把上面这段并入你的profiles.defaults即可也可以只对某一个 WSL 配置文件单独设置。容易踩的坑手动复制的路径遇到空格就断问题复制路径粘贴进命令后路径在空格处被当成两个参数命令报错。原因shell 以空格分隔参数而手动复制不会自动加引号。解决办法直接用拖放或“CtrlC 复制文件 CtrlV”的方式让终端帮你加引号坚持手敲的话自己把路径用引号包住。从压缩包里拖多个文件只出来 16 个问题从 zip、7z 等压缩包窗口直接拖多个文件终端里只出现 16 条路径。原因系统接口GetStorageItemsAsync对压缩包来源一次最多返回 16 项这是 Windows 侧的限制。解决办法较新版本的终端已通过读取拖放数据流里的完整清单绕过该限制源码中对应 GH#14628 的处理把终端升级到新版本即可。Windows 路径在 WSL 窗格里无效问题拖进 WSL 窗格的路径以C:\开头Linux 命令找不到这个文件。原因默认不做路径转换路径按原样粘贴。解决办法为对应的 WSL 配置文件设置pathTranslationStyle让终端在粘贴前完成转换。把手敲的路径换成拖进来的路径文件拖放的价值不在“快”而在“准”引号、连接符、路径格式这些容易出错的部分都由终端代劳你只负责把文件放进窗口。接下来可以做的具体一件事打开你的 settings.json找到常用的 WSL 配置文件给它加上pathTranslationStyle再拖一个文件验证路径格式是否符合预期。【免费下载链接】terminalThe new Windows Terminal and the original Windows console host, all in the same place!项目地址: https://gitcode.com/GitHub_Trending/term/terminal创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表