您的位置:首页 > 财经 > 金融 > 中山建网站公司_东莞南城电子网站建设_seo网站诊断顾问_百度广告联盟官网

中山建网站公司_东莞南城电子网站建设_seo网站诊断顾问_百度广告联盟官网

2024/12/23 1:35:22 来源:https://blog.csdn.net/weixin_45756789/article/details/143784184  浏览:    关键词:中山建网站公司_东莞南城电子网站建设_seo网站诊断顾问_百度广告联盟官网
中山建网站公司_东莞南城电子网站建设_seo网站诊断顾问_百度广告联盟官网

文章目录

  • 1. 功能展示
    • 1.1. 对 WSL 文件/文件夹/目录空白位置 使用
    • 1.2. 对 Windows 文件/文件夹/目录空白位置 使用
    • 1.3. Fin
  • 2. 方法
  • 3. 文件内容
    • 3.1. AddWSLPath.reg
    • 3.2. CopyPath.vbs
  • 4. 念念碎

1. 功能展示

1.1. 对 WSL 文件/文件夹/目录空白位置 使用

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6f676c0685734d19beb803f117fd98f5.png

输出 /etc

1.2. 对 Windows 文件/文件夹/目录空白位置 使用

在这里插入图片描述

输出 /mnt/d/hty/creat/code

1.3. Fin

获得的文件/文件夹路径可直接在 WSL 终端内直接使用:

在这里插入图片描述

2. 方法

新建内容如后所述的 CopyPath.vbsAddWSLPath.reg 文件,可用记事本创建,然后修改后缀名。

需要修改 AddWSLPath.regC:\\myScripts\\CopyPath.vbs 为你的 CopyPath.vbs 的路径,假设你的 CopyPath.vbs 放在 D:\AAA, 则写入:

[HKEY_CLASSES_ROOT\Directory\shell\Path for WSL\command]
@="wscript.exe \"D:\\AAA\" \"%1\""

AddWSLPath.reg 的 3 个路径位置都要修改。然后令 AddWSLPath.reg 用注册表编辑器打开,使之加入注册表即可。

如果功能没生效,打开注册表编辑器检查是否写入了。如果没写入,说明路径填错了:

  • 比如结尾少了个 \
  • 或者路径中的 \ 没有用 \\ 进行转义。

3. 文件内容

3.1. AddWSLPath.reg

Windows Registry Editor Version 5.00; by 萌豚老师[HKEY_CLASSES_ROOT\Directory\shell\Path for WSL]
@="Path for WSL"[HKEY_CLASSES_ROOT\Directory\shell\Path for WSL\command]
@="wscript.exe \"C:\\myScripts\\CopyPath.vbs\" \"%1\""[HKEY_CLASSES_ROOT\*\shell\Path for WSL]
@="Path for WSL"[HKEY_CLASSES_ROOT\*\shell\Path for WSL\command]
@="wscript.exe \"C:\\myScripts\\CopyPath.vbs\" \"%1\""[HKEY_CLASSES_ROOT\Directory\Background\shell\Path for WSL]
@="Path for WSL"[HKEY_CLASSES_ROOT\Directory\Background\shell\Path for WSL\command]
@="wscript.exe \"C:\\myScripts\\CopyPath.vbs\" \"%V\""

3.2. CopyPath.vbs

' by 萌豚老师Set objArgs = WScript.Arguments
If objArgs.Count = 0 ThenWScript.Echo "No argument provided"WScript.Quit
End If' 获取第一个参数
strPath = objArgs(0)' 使用 PowerShell 将路径复制到剪贴板
Set objShell = CreateObject("WScript.Shell")Dim resultPath
resultPath = ""Dim slashCount, i
slashCount = 0' 处理 WSL 路径
If Left(strPath, 2) = "\\" Then' 从第5个 \ 开始截取路径For i = 1 To Len(strPath)If Mid(strPath, i, 1) = "\" ThenslashCount = slashCount + 1End IfIf slashCount >= 4 ThenresultPath = Mid(strPath, i ) ' 从第5个斜杠后开始保留路径Exit ForEnd IfNext
Else' 处理 Windows 路径resultPath = "/mnt/" & LCase(Left(strPath, 1)) & Mid(strPath, 3) 
End If' 把路径中的 \ 替换为 /
resultPath = Replace(resultPath, "\", "/")' 使用 PowerShell 将处理后的路径复制到剪贴板
On Error Resume Next ' Continue on error to handle possible clipboard issue
objShell.Run "powershell -Command Set-Clipboard '" & resultPath & "'", 0, True

4. 念念碎

  • 为什么不在注册表中直接用 cmd/Powershell 实现相关功能?

因为即使使用了 ‘-WindowStyle Hidden’ 等功能,仍然会短暂显示一个终端窗口,在 https://github.com/PowerShell/PowerShell/issues/3028 也有提出。目前该问题仍未解决,所以比较好的方法是用 vbs 文件静默启动终端。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com