![使用 CMD bat 在 Windows 中打开长路径的文件](https://linux22.com/image/1616423/%E4%BD%BF%E7%94%A8%20CMD%20bat%20%E5%9C%A8%20Windows%20%E4%B8%AD%E6%89%93%E5%BC%80%E9%95%BF%E8%B7%AF%E5%BE%84%E7%9A%84%E6%96%87%E4%BB%B6.png)
我们有时需要允许公司中的用户在 Windows 上打开路径较长的文件。我找到的解决方案之一(https://support.centrestack.com/hc/en-us/articles/360026297293-如何在Windows客户端上打开具有非常长路径的文件) 看起来非常有前途且易于使用:1.我们在 Windows 资源管理器中添加一个上下文菜单项,在选定的文件上运行我们的 .bat 文件:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Open with Shorter Path\command]
@="C:\\mapKAndOpen.bat \"%1\""
该 bat 文件安装一个包含文件短路径的“驱动器”,并从短路径打开该文件。
@echo off subst.exe K: /D subst.exe K: "%cd%" explorer K:\%~nx1 exit
不幸的是,当我尝试从路径较长的目录中运行 .bat 文件时,我收到来自 Explorer.EXE 的错误:“目录名称无效”。即使我打开一个不执行任何操作的空批处理文件,也会发生这种情况。因此,看起来在我遇到的条件下,Windows 资源管理器无法启动批处理。有人知道为什么会发生这种情况吗?
路径比较长,大概如下:
\\?\D:\TESTPaths\Documents - TEST\2 TestFolderLongName\2.1 dsf sfjsdklfjdslkfj sdklfj slkdfjskldjf klsjfsdkl jfsdkl jfsdlkj flksd jfsdkl jfksld fjsdklfj lksdfj sdklfj sdklfj klsdjf sldk jflsdkjf sdlkj fsdlf jsdf\2.1.1 dsf sfjsdklfjdslkfj sdklfj slkdfjskldjf klsjfsdkl jfsdkl jfsdlkj flksd jfsdkl jfksld fjsdklfj lksdfj sdklfj sdklfj sldk jflsdkjf sdlkj fsdlf jsdf\2.1.1.1 dsf sfjsdklfjdslkfj sdklfj slkdfjskldjf klsjfsdkl jfsdkl jfsdlkj flksd jfsdkl jfksld fjsdklfj lksdfj sdklfj sdklfj klsdjf sldk jflsdkjf sdlkj fsdlf jsdf\2.1.1.1.1 dsf sfjsdklfjdslkfj sdklfj slkdfjskldjf klsjfsdkl jfsdkl jfsdlkj flksd jfsdkl jfksld fjsdklfj lksdfj sdklfj sdklfj klsdjf sldk jflsdkjf sdlkj fsdlf jsdf\2.1.1.1.1.1 费用报告.xlsx
也许问题出在我的 Windows 版本或某些设置上,而该解决方案适用于其他版本,不确定。