在没有管理员权限的批处理文件中,FOR 命令无法从("命令")返回输出,因为错误:xxx 未被识别为...命令



我在 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: HKCRbatfileshellopencommand: "%1" %*
Env: ComSpec=C:WINDOWSsystem32cmd.exe

是否正常命令无法正常工作?

我正在尝试通过运行sfc.exe /scannow来还原cmd.exe。感谢您的帮助!


编辑:我尝试了sfc /scannow。完成后,我检查了"%windir% logs cbs cbs.log"

C:WINDOWSsystem32>findstr "cmd.exe" %WinDir%LogsCBSCBS.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_adf8f2af8b80fc99cmd.exe
(p)     CSI Payload Corrupt     (Fixed) amd64_microsoft-windows-commandprompt_31bf3856ad364e35_10.0.16299.15_none_adf8f2af8b80fc99cmd.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:WINDOWSSystem32cmd.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:WINDOWSSystem32cmd.exe from store

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

我弄清楚了。

我的cmd.exe是一个人打破的。我将F2KO的软件用于将CMD.EXE转换为Admin Right 并更换了它。我希望我可以自动运行脚本(.bat(。

这是导致此错误的。我还原了最新版本的CMD.exe的原始备份,现在它正常工作

我要找到适当的解决方案,可以用管理权启动批处理文件。

相关内容

最新更新