ana*_*d s 5 linux command-line windows-10 windows-subsystem-for-linux
我安装了适用于 Linux 的 Windows 子系统,并在 Windows 下打开了关闭功能。然后重新启动我的电脑。通过键入“wsl”重新启动PC后,我确实检查了cmd并且它可以工作。但是,当我从其包含命令“wsl -e xxx.sh”的文件夹中运行我的脚本时,出现错误
'wsl' 不是内部或外部命令,也不是可运行的程序或批处理文件。
你们能帮我吗?谢谢你。
我的电脑在 操作系统上运行:Windows 10 Pro;微软视窗版本:1903;操作系统版本:18362.418
小智 6
尝试从 32 位进程访问 64 位工具时的常见问题。wsl.exe在System32. 但是,如果您的脚本恰好作为 32 位进程运行,则所有System32对SysWOW64. 为了wsl.exe在“真实”System32文件夹中访问,您必须Sysnative改用,例如在C:\Windows\Sysnative\wsl.exe.
运行可执行程序的命令在命令行上工作但在批处理脚本中不起作用的最常见原因是,在脚本中,在包含问题命令的行之前,用户创建了一个变量 %path% 。对于保存路径的变量来说,这似乎是一个方便的名称。问题在于,Windows 使用此变量名称来保存以分号分隔的文件夹列表,在调用可执行文件时将搜索这些文件夹。它是一个系统变量。如果您重新定义了它,则将找不到 Windows 使用的所有可执行文件(例如 .exe、.bat、.vbs 等),并且脚本将失败并显示此消息,其中 xxx 是要执行的程序或文件预期的:
'xxx' is not recognized as an internal or external command, operable program or batch file.
这可能会令人困惑,因为cmd 环境内部的命令(dir、cls、set、copy、move 等)(此处列出)在这种情况下仍然可以继续工作。
path您可以通过在问题行之前插入命令来调试怀疑存在此问题的脚本。Windows 路径变量以这些文件夹开始,并且可能会随着程序的安装而扩展:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
| 归档时间: |
|
| 查看次数: |
22342 次 |
| 最近记录: |