我经常需要从 Windows 了解 WSL 挂载的路径名。我现在已经看到了很多该问题的草图解决方案,所以我认为我应该分享我的方法。
此类用例可能是针对从 cmd.exe 运行的某些内容运行 Linux 工具,或从 Windows 开发环境中使用 gdb 调试某些内容。
例如:“C:\Windows\System32”=“/mnt/c/Windows/System32”
答案1
这是我想出的一个技巧。下面这行代码将提取 CWD 又名 %CD%,并将其放入名为 LNX_PATH 的变量中
for /f %p in ('bash.exe -c "pwd"') do set LNX_PATH=%p
这是一个简化的批处理文件示例,它将使用 vi 从 Windows 文档目录中打开名为“test.txt”的文本文件。
@echo off
:: This is the path to the file I want to launch using vi...
Set WIN_DOC_PATH=%UserProfile%\Documents
:: Switch to that path, get the CWD (linux style) and switch back
pushd "%WIN_DOC_PATH%"
for /f %%n in ('bash.exe -c "pwd"') do set LNX_DOC_PATH=%%n
popd
:: Launch vi (via bash) using the correct path format
bash.exe -c "vi %LNX_DOC_PATH%/test.txt"
当该批处理退出时,您将回到开始处的 cmd.exe。
如果有人有更好的(非粗略的)方法来获得这条路径,我会很想知道!