所以我的问题是,当我刚刚在终端中运行cmd.exe时,我得到“&此时是意外的。” 最后的错误-看起来像这样
所以问题是当我想要运行unity_csc.bat文件并编译解决方案时,我在Unity 3D中遇到了错误。这些错误与我刚运行cmd.exe时的错误完全相同-因此我怀疑它不是基于Unity3D的问题(如果您愿意,可以在https://forum.unity.com/threads/2-empty-errors-in-console-was-unexpected-at-this-time.799110/处检查Unity3D特定线程)
有人知道为什么会这样吗?当我尝试运行.bat文件时也会发生这种情况-我怀疑这是为什么我无法编译Unity项目的原因
我正在运行具有所有最新更新的Windows 10
编辑:
由于cmd / d不会引发错误,因此此注册表记录可能存在一些问题?
在用户文件夹中,我确实有此自动运行记录
@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 )
答案 0 :(得分:2)
Stephan提供了关键的指针:
听起来您为cmd.exe
定义了错误的 autorun 命令;也就是说,您的注册表定义了一个命令,该命令将在您每次调用cmd.exe
时自动执行,并且该命令会导致您看到语法错误。
请注意,无论您是打开交互式cmd
会话还是通过批处理文件调用还是通过cmd
将命令传递给/C
,这些命令都将执行。
将/D
传递到cmd
会绕过所有自动运行命令。
注册表中有 两个位置,可以在其中定义这样的命令,一个在本地计算机级别(适用于所有用户),
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
您可以使用以下PowerShell代码段从两个位置删除自动运行命令,但是请注意,如果需要,请使用海拔高度运行(以管理员身份)存在本地计算机值:
Get-ItemProperty -ea Ignore ('HKCU:', 'HKLM:' -replace '$', '\Software\Microsoft\Command Processor') AutoRun |
Remove-ItemProperty -Name AutoRun -WhatIf
注意:上方命令中的-WhatIf
common parameter会预览该操作。确定操作将执行您想要的操作后,请删除-WhatIf
。