当我在资源管理器中或从其他任何地方(仅在我的用户帐户中的windows 10)加倍任何批处理文件(甚至是像“回声测试”这样简单的东西)时。我收到以下错误消息:
文件名、目录名或卷标语法不正确。
如果我右键单击批处理文件并以管理员身份运行它,它将毫无问题地运行。打开cmd.exe并使用运行该文件/test.bat也可以。文件关联似乎有问题?
如果我运行assoc来获取ProgId,那么带有.bat的条目如下:
.bat=batfile
如果我检查与batfile ProgId(ftype|find“batfile)相关联的可执行文件,我会得到以下信息:
batfile=“%1”%*
我已经尝试将与batfile ProgId相关联的可执行文件更改为
cmd.exe /c "%1" %*
在注册表中(
HKEY_CLASSES_ROOT\batfile\shell\open\command
)它看起来确实有效,但它真的是正确的答案吗?
我还使用了procmon来查看有修复和没有修复的区别。
使用cmd.exe作为progId
Event Path: *C:\Users\User\test.bat*\
Process Path: *C:\WINDOWS\system32\cmd.exe*\
Process Command: *"cmd.exe" /c "C:\Users\User\test.bat*\
没有它(默认)
Event Path: *C:\Windows\System32\"C:\Users\User\test.bat"*\
Process Path: *C:\WINDOWS\system32\svchost.exe*\
Process Command: *C:\WINDOWS\system32\svchost.exe -k netsvcs -p -s Appinfo*