首页 > 系统相关 >Windows10内置Linux子系统(WSL)路径转换

Windows10内置Linux子系统(WSL)路径转换

时间:2022-10-24 13:34:19浏览次数:85  
标签:wsl 转换 Windows 路径 WSL Windows10 右键 Linux

在使用WSL中,因为Windows和Linux路径语法不同问题,cd到某一个目录比较麻烦。因为wsl中有一个工具专门用于路径转换用于提供便利性。

语法:wsl wslpath [option] [path]

option 参数,默认-u

  • -a:强制结果为绝对路径格式
  • -u:从Windows路径转换为WSL路径(默认)
  • -w:从WSL路径转换为Windows路径
  • -m:从WSL路径转换为Windows路径,使用“/”而不是“\”

path 代表要转换的文件夹路径

Windows路径转换为WSL Linux路径

Windows的目录在WSL的mnt目录中,因此转换成功了的根目录都是mnt开头。

此命令在CMD控制台执行

转换某一个目录

wsl wslpath  "F:/download"

转换当前目录

wsl wslpath "%cd%"

WSL Linux路径转换为Windows路径

此命令在WSL中执行

转换某一个目录

 wslpath -w "/mnt/f/download"

转换当前目录

wslpath -w  `pwd`

文件夹空白处添加右键菜单当前目录转换WSL目录并拷贝

参考两篇博客:

win + r 然后输入 regedit 打开注册表,找到 HKEY_CLASSES_ROOT\Directory\Background\shell

  1. 右击新建项GetWslPath.点击,右侧的默认,双击,改变数值数据为复制WSL路径到剪切板,这就是显示在右键菜单中的名字
  2. 在空白处右键新建,字符串值。改名为 Icon ,并且数值数据设置为图片路径,这就是右键菜单的图标了。推荐使用此文件
  3. GetWslPath右键,新建,项,命名为 command ,将 command 默认的数值数据改为 wscript "D:\Program Files\Wsl\RunCmd.vbs" "%V"

RunCmd.vbs脚本如下

WScript.CreateObject("WScript.Shell").Run  chr(34) &"D:\Program Files\Wsl\PathToWsl.bat"& chr(34)& " " & chr(34) & WScript.Arguments.Item(0) & chr(34) , 0, True

PathToWsl.bat脚本如下

@echo off
set windows_path=%1

REM 去除引号
set windows_path=%windows_path:"=%

REM 路径转换,执行结果赋给参数
for /f "delims=" %%a in ('wsl wslpath "%windows_path%"') do @set wsl_path=%%a 

REM 拷贝至剪切板
echo | set /p="%wsl_path%" | clip

注册表文件导出如下

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\GetWslPath]
@="复制WSL路径到剪切板"
"Icon"="D:\\Program Files\\Wsl\\linux.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\GetWslPath\command]
@="wscript \"D:\\Program Files\\Wsl\\RunCmd.vbs\"  \"%V\""

标签:wsl,转换,Windows,路径,WSL,Windows10,右键,Linux
From: https://www.cnblogs.com/RainFate/p/16821186.html

相关文章

  • Linux - 进程管理
    Linux中一切皆文件(文件:读写执行(查看,创建,编辑,删除,移动,复制,编辑),权限(用户,用户组),系统(磁盘,进程)对于我们开发人员来说,其实Linux更多偏向于使用一,基本概念1.在linux中,每个程序......
  • Linux grep 命令详解
    Linuxgrep命令用于查找文件里符合条件的字符串。grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样......
  • 【备忘录】个人arch linux uefi+GPT安装全记录
    下载archlinux镜像https://mirrors.ustc.edu.cn/archlinux/iso/2022.10.01/archlinux-2022.10.01-x86_64.iso 制作启动盘或者刻光盘 启动机器 选择第一个启动......
  • C++ 实现随机数生成(Windows、Linux)
    1、简介计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子。(注意:小M多项式序列的周期是65535,即每次利用一个随机种子......
  • 麒麟系统开发笔记(八):在国产麒麟系统上使用linuxdeployqt发布qt程序
    前言  在ubuntu上发布qt程序相对还好,使用脚本,但是在麒麟上发布的时候,因为银河麒麟等不同版本,使用脚本就不太兼容,同时为了实现直接点击应用可以启动应用的效果,使用linuxde......
  • Linux查看CPU个数
    一查看cpu型号root@localhost:~#grepname/proc/cpuinfo|sort|uniqmodelname:IntelCoreProcessor(Broadwell,noTSX)二查看物理CPU个数root@localhost......
  • Linux搭建samba服务
    Linux搭建samba服务实现文件共享实现方式,首先需要配置yum。需要配置可以根据此链接进行配置:https://www.cnblogs.com/cherish-sweet/p/newyum.html 1. 检查是否安装......
  • linux操作基础
    Linux命令1.重启系统或者重启网卡,输入命令"reboot"或"servicenetworkrestart"2.安装gcc           yum-yinstallgcc3.安装gcc-c++ ......
  • Linux查看硬盘空间
    查看命令:df-hl  查看磁盘剩余空间df-h   查看每个根路径的分区大小du-sh[目录名]   返回该目录的大小du-sm[文件夹]   返回该文件夹总数du-h[......
  • linux设置开机自启一些命令
     文章目录目的rc.localSysVinitSystemd在Systemd中实现rc.local注意事项SysVinit和Systemd的联系与区别总结 目的开机自动运行程序,或者说系统启动时自......