“x86 : 无法将“x86”项识别为 cmdlet、函数...”的短路径解决办法

在终端中原始命令如下:

在执行任务: powershell -Command '& "C:\Program Files (x86)\NASM\nasm.exe"' -ArgumentList "-f win32 C:\Users\15879\Desktop\code\x86\Hello World.asm -o C:\Users\15879\Desktop\code\x86\Hello World.obj" -NoNewWindow -Wait 

x86 : 无法将“x86”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 21
+ & C:\Program Files (x86)\NASM\nasm.exe -ArgumentList -f win32 C:\User ...
+                     ~~~
    + CategoryInfo          : ObjectNotFound: (x86:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

在命令行中,如果路径包含空格,应该将整个路径放在双引号 " " 内。否则,PowerShell 会错误地将路径中的空格视为命令分隔符,从而将路径拆分成多个部分。

当使用 PowerShell 的 & 运算符来调用一个外部程序时,PowerShell 会直接执行命令,但是如果后面接的参数没有正确分隔和包围,PowerShell 会出现解析错误。

网上很多都说需要添加双引号包含空格,我修改了task.json文件:

 {
        "label": "build with NASM",
    "type": "shell",
    "command": "powershell",
    "args": [
        "-Command",
        "& \"C:\\Program Files (x86)\\NASM\\nasm.exe\"",
        "-f", "win32",
        "\"${file}\"",
        "-o", "\"${fileDirname}\\${fileBasenameNoExtension}.obj\"",
        "-NoNewWindow",
        "-Wait"
    ],
    "group": {
        "kind": "build",
        "isDefault": false
    },
        "problemMatcher": [],
        "detail": "使用NASM编译汇编代码"
  }

即使添加了双引号依然不行,vscode依然会解析出错,就是依然会因为空格导致解析错误。

下面我采用短路径的方法来避免空格的问题。

   {
        "label": "build with NASM",
        "type": "shell",
        "command": "powershell",
        "args": [
            "-Command",
            "& \"C:\\Progra~2\\NASM\\nasm.exe\" -f bin \"${file}\" -o \"${fileDirname}\\${fileBasenameNoExtension}.bin\""
        ],
        "group": {
            "kind": "build",
            "isDefault": false
        },
        "problemMatcher": [],
        "detail": "使用NASM编译汇编代码"
}

Windows 为长路径提供了短路径(8.3 格式),它避免了空格和其他特殊字符的问题。例如,C:\Program Files (x86) 的短路径通常是 C:\Progra~2

短路径格式不包含空格,因此它能够避免 PowerShell 将路径拆分成多个部分的问题。

这样我们相当于消除了空格的问题,避免了命令解析错误。

最后结果如下,证明vscode执行成功了该命令:

*   正在执行任务: powershell -Command '& "C:\Progra~2\NASM\nasm.exe" -f bin "C:\Users\15879\Desktop\code\x86\HelloWorld.asm" -o "C:\Users\15879\Desktop\code\x86\HelloWorld.bin"' 
*  终端将被任务重用,按任意键关闭。 

### 解决方案 在遇到 `yarn` 命令未被识别cmdlet函数的问题时,可以采取以下措施来解决问题。 #### 安装 Yarn 并设置环境变量 确保已经正确安装了 Yarn。可以通过访问官方网站下载并按照说明完成安装过程[^1]。对于 Windows 用户来说,在安装过程中勾选“Add to PATH”选非常重要,这一步骤会自动将 Yarn 的路径添加到系统的环境变量中,使得可以在任何地方调用 `yarn` 命令。 如果之前忽略了此步骤,则需要手动编辑系统环境变量: 1. 打开“控制面板”,找到“系统和安全”下的“系统” 2. 点击左侧的“高级系统设置”,接着点击“环境变量” 3. 在“系统变量”部分寻找名为 `Path` 的条目,并点击“编辑”。如果没有看到该条目则新建一个 4. 将 Yarn 的全局安装目录(通常是 `C:\Program Files (x86)\Yarn\bin` 者通过命令 `where yarn` 查找确切位置)添加进去;多个路径之间使用分号隔开 5. 应用更改后重启计算机使修改生效 #### 更新 PowerShell 执行策略 为了允许执行来自互联网下载下来的脚本文件,可能还需要调整 PowerShell 的执行策略。以管理员权限启动 PowerShell 后输入如下指令: ```powershell Set-ExecutionPolicy RemoteSigned -Scope CurrentUser ``` 这条语句的作用是改变当前用户的默认执行策略为远程签名模式,即只信任本地编写的脚本以及带有可信发布商数字签名的外部脚本[^2]。 #### 验证安装成功与否 最后一步是在新的命令提示符 PowerShell 实例里验证是否能够正常使用 `yarn` 命令。尝试运行简单的帮助信息查询者查看已安装包列表等操作: ```bash yarn --version ``` 若能顺利返回版本号其他预期输出,则表示问题得到解决[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值