在批处理文件WITHOUT Admin Right中,FOR命令无法从('command')返回输出,由于ERROR:xxx未被识别为...命令

时间:2018-02-11 16:48:35

标签: batch-file cmd

我在 Windows 10.0.16299.125

批处理文件中的代码:

@echo off
for /f "delims=" %%a in ('ver') do echo %%a

输出:

'ver' is not recognized as an internal or external command,
operable program or batch file.

我发现如果我在没有管理员的情况下运行它,则会出现此错误 但是,批量文件在我双击后总是正常运行,即使我以管理员帐户身份登录。

之前它运作正常,但最近刚刚破了。

我已确认我的注册表和环境变量:

Reg: HKCR\batfile\shell\open\command: "%1" %*
Env: ComSpec=C:\WINDOWS\system32\cmd.exe

没有管理员权限,FOR命令无法正常工作,这是正常的吗?

我正在尝试通过运行sfc.exe /scannow来恢复cmd.exe。谢谢你的帮助!!

修改:我试过了sfc /scannow。完成后,我检查了“%WinDir%\ Logs \ CBS \ CBS.log”

C:\WINDOWS\system32>findstr "cmd.exe" %WinDir%\Logs\CBS\CBS.log
2018-02-12 01:14:47, Info                  CSI    00000007 Hashes for file member [l:7]'cmd.exe' do not match.
2018-02-12 01:15:56, Info                  CBS    Repr: Add missing payload:amd64_microsoft-windows-commandprompt_31bf3856ad364e35_10.0.16299.15_none_adf8f2af8b80fc99\cmd.exe
(p)     CSI Payload Corrupt     (Fixed) amd64_microsoft-windows-commandprompt_31bf3856ad364e35_10.0.16299.15_none_adf8f2af8b80fc99\cmd.exe
2018-02-12 01:26:24, Info                  CSI    00001290 Hashes for file member [l:7]'cmd.exe' do not match.
2018-02-12 01:26:24, Info                  CSI    00001291 [SR] Repairing corrupted file \??\C:\WINDOWS\System32\cmd.exe from store
2018-02-12 01:36:47, Info                  CSI    000067ab Hashes for file member [l:7]'cmd.exe' do not match.
2018-02-12 01:36:47, Info                  CSI    000067ac [SR] Repairing corrupted file \??\C:\WINDOWS\System32\cmd.exe from store

日志似乎成功修复了cmd.exe。但是,当我再次尝试时,FOR仍然失败了......

1 个答案:

答案 0 :(得分:1)

我明白了。

我的cmd.exe被自己打破了。 我使用f2ko的软件将cmd.exe转换为管理员权限并替换它。 我希望我能自动运行Admin脚本(.bat)。

这就是造成这个错误的原因。 我恢复了最新版cmd.exe的原始备份,现在它可以正常工作

我将找到一个正确的解决方案,以管理员权限启动批处理文件。