cmd.exe 抛出错误“& 在此时出乎意料。”

Pet*_*SVK 4 powershell cmd batch-file unity-game-engine

所以我的问题是,当我刚刚在终端中运行 cmd.exe 时,我得到“&此时出乎意料”。最后出错 - 看起来像这样

在此处输入图片说明

所以问题是当我想运行 unity_csc.bat 文件并编译解决方案时,我在 Unity 3D 中遇到了错误。这些错误与我刚运行 cmd.exe 时的错误完全相同 - 因此我怀疑它不是基于 Unity3D 的问题(如果您愿意,可以在此处查看 Unity3D 特定线程https://forum.unity.com/threads/ 2-empty-errors-in-console-was-unexpected-at-this-time.799110/ )

有谁知道为什么会发生这种情况?当我尝试运行 .bat 文件时也会发生这种情况 - 我怀疑这就是我无法编译 Unity 项目的原因

在此处输入图片说明

我正在运行带有所有最新更新的 Windows 10

编辑:

由于 cmd /d 没有抛出错误,这个注册表记录可能有问题吗? 在此处输入图片说明

在用户文件夹中,我确实有这个 Autorun 记录

@mode 20,5 & tasklist /FI "IMAGENAME eq SoundMixer.exe" 2>NUL | find /I /N "SoundMixer.exe">NUL && exit & if exist " ( start /MIN "" " & tasklist /FI "IMAGENAME eq explorer.exe" 2>NUL | find /I /N "explorer.exe">NUL && exit & explorer.exe & exit ) else ( tasklist /FI "IMAGENAME eq explorer.exe" 2>NUL | find /I /N "explorer.exe">NUL && exit & explorer.exe & exit )
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

mkl*_*nt0 7

Stephan提供了关键的指针:

听起来您为cmd.exe;定义了一个损坏的自动运行命令;也就是说,您的注册表定义了一个在您调用 时自动执行的命令,cmd.exe该命令会导致您看到的语法错误。

请注意,无论您是打开交互式cmd会话还是通过批处理文件调用或将命令传递给cmdwith ,都会执行此类命令/C

传递/Dcmd绕过任何自动运行命令。

注册表中有两个位置可以定义这样的命令,一个在本地机器级别(适用于所有用户),
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor另一个仅用于当前用户
HKEY_CURRENT_USER\Software\Microsoft\Command Processor,在名为 的值中AutoRun
如果在两个位置都定义了HKEY_LOCAL_MACHINE命令,则首先运行 的命令。

列出任何定义的自动运行命令:

Get-ItemProperty -ea Ignore ('HKCU:', 'HKLM:' -replace '$', '\Software\Microsoft\Command Processor') AutoRun
Run Code Online (Sandbox Code Playgroud)

您可以使用以下 PowerShell 代码段从两个位置删除自动运行命令,但请注意,如果存在本地机器值,则您必须以提升(以管理员身份)运行它:

Get-ItemProperty -ea Ignore ('HKCU:', 'HKLM:' -replace '$', '\Software\Microsoft\Command Processor') AutoRun |
  Remove-ItemProperty -Name AutoRun -WhatIf
Run Code Online (Sandbox Code Playgroud)

注意:上面命令中的-WhatIfcommon参数可以预览操作。删除-WhatIf,一旦您确定操作会执行您想要的操作。

  • 非常感谢,你拯救了我的一天!我收到此错误是因为我的自动运行中有一个“&”符号,这是由于 Conda 安装错误造成的。 (2认同)