在我的Windows目录中
C:\Users\jholmes\pichak\analytics我有运行1.ps1代码。我运行wsl.exe,现在我的pwd是
/mnt/c/WINDOWS/system32如何指向第一个路径并执行脚本?
发布于 2021-06-11 14:16:27
要做到这一点有两种方法:
cd /mnt/c/。D:\Ubuntu。为了避免每次打开WSL时更改工作目录,您可以修改shell配置文件(bashrc、zshrc等)。在末尾加载相关目录。cd /mnt/d/Ubuntu/文件的末尾添加~/.zshrc。发布于 2021-10-08 08:57:50
在WSL2中,使用-File选项对我有效:
powershell.exe -File path/to/script.ps1发布于 2021-06-11 17:43:56
当从wsl (或wsl.exe)从PowerShell运行时,它应该从与PowerShell下的目录相同的目录开始,就在它的Linux中。例如,如果您在PowerShell in C:\Users\jholmes\pichak\analytics中,并且运行了wsl,那么您应该在/mnt/c/Users/jholmes/pichak/analytics中结束。
如果没有,那么您的启动文件中可能已经有类似于建议的另一个答案。您应该从您的.bashrc、.zshrc、.profile、.bash_profile或您可能编辑的任何其他启动文件中删除任何.zshrc命令。
wsl命令为指定起始目录提供了一些方便的参数:
wsl ~将在Linux用户的主目录(例如/home/jholmes)中启动。wsl --cd c:\将从/mnt/c开始(或与传入的/mnt/c版本等效的Linux目录)。wsl --cd \\wsl$\<distroname>\etc将在您的/etc目录(或您传入的任何WSL路径)中启动。请注意,您需要指定您的发行版名称(从wsl -l -v获得)。假设您在/home/jholmes中,并且希望执行PowerShell脚本C:\Users\jholmes\pichak\analytics\run1.ps1。您首先需要将Windows路径转换为Linux版本:
/mnt/c/Users/jholmes/pichak/analytics/run1.ps
然后您可以通过以下方式运行它:
powershell.exe /mnt/c/Users/jholmes/pichak/analytics/run1.ps
还可以设置一个带有"shebang“行的PowerShell脚本来直接执行它。如果将以下内容添加为run1.ps1的第一行
#!/usr/bin/env -S powershell.exe -ExecutionPolicy Bypass然后通过chmod +x /mnt/c/Users/jholmes/pichak/analytics/run1.ps将其设置为可执行文件,然后它将成为一种“命令”(从技术上讲,是一个“可执行脚本”),您只需在命令行中键入脚本的完全限定名即可直接执行该命令:
/mnt/c/Users/jholmes/pichak/analytics/run1.ps或
cd /mnt/c/Users/jholmes/pichak/analytics
./run1.pshttps://stackoverflow.com/questions/67938331
复制相似问题