首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从WSL调用PowerShell脚本?

如何从WSL调用PowerShell脚本?
EN

Stack Overflow用户
提问于 2021-06-11 13:58:16
回答 5查看 9.1K关注 0票数 5

在我的Windows目录中

代码语言:javascript
复制
C:\Users\jholmes\pichak\analytics

我有运行1.ps1代码。我运行wsl.exe,现在我的pwd是

代码语言:javascript
复制
   /mnt/c/WINDOWS/system32

如何指向第一个路径并执行脚本?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2021-06-11 14:16:27

要做到这一点有两种方法:

  1. 您可以将工作目录更改为shell脚本的工作目录并正常执行。要做到这一点,请执行以下步骤:
  • 安装相关驱动器cd /mnt/c/
  • 根据脚本的路径更改目录。
  1. 这种方法更像是我为了方便而使用的一种黑客。我已经在我的Windows存储中创建了一个文件夹,其中存储了所有与Ubuntu相关的文件。比如说,D:\Ubuntu。为了避免每次打开WSL时更改工作目录,您可以修改shell配置文件(bashrc、zshrc等)。在末尾加载相关目录。
  • 也就是说,如果您使用zsh或相关的配置文件,则在cd /mnt/d/Ubuntu/文件的末尾添加~/.zshrc
票数 2
EN

Stack Overflow用户

发布于 2021-10-08 08:57:50

在WSL2中,使用-File选项对我有效:

代码语言:javascript
复制
powershell.exe -File path/to/script.ps1
票数 6
EN

Stack Overflow用户

发布于 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的第一行

代码语言:javascript
复制
#!/usr/bin/env -S powershell.exe -ExecutionPolicy Bypass

然后通过chmod +x /mnt/c/Users/jholmes/pichak/analytics/run1.ps将其设置为可执行文件,然后它将成为一种“命令”(从技术上讲,是一个“可执行脚本”),您只需在命令行中键入脚本的完全限定名即可直接执行该命令:

代码语言:javascript
复制
/mnt/c/Users/jholmes/pichak/analytics/run1.ps

代码语言:javascript
复制
cd /mnt/c/Users/jholmes/pichak/analytics
./run1.ps
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67938331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档