我有一个批处理文件(在 Windows XP 中,激活了命令扩展),其中包含以下行:
for /f %%s in ('type version.txt') do set VERSION=%%s
在某些计算机上,它工作得很好(如图所示这个问题),但在其他方面它杀死了cmd(控制台窗口刚刚关闭)
Why ?
注意:计算机似乎具有类似的配置:XpSP2,用户具有管理权限,HKEY_CURRENT_USER\Software\Microsoft\Command Processor 中没有定义“命令处理器”...
我得到了第一个经验答案:
for /f %%s in (version.txt) do ...
在每台计算机上都可以正常工作。
它似乎for /f
与文件名一起使用,而不是与任何 dos 命令(例如“type filename”)一起使用。
然而,对于我所有客户的计算机来说,情况并非如此(在某些计算机上,“类型文件名”工作正常)
如果你想要 15 分(简单?);-),你可以留下问题的答案:
为什么“for /f”有时不能与文件名以外的任何内容一起使用。为什么它只是关闭 DOS 会话?
编辑:3年后(!),barlop面临类似的情况,问题中详细说明“for /f立即关闭cmd提示符?”。他的结论是:
COMSPEC
did get listed when doing SET
+ENTER.
So, I opened the environment variables window, and saw COMSPEC
was not listed under user or system variables. I added it to System Variables, started a command prompt, and it seems to work fine.
This ss64 论坛上的帖子, 提到的Andriy M在他对巴洛普问题的回答中包含了细节。
炮击中的“for
“循环完成'dir
'(或您要求完成的任何命令)需要ComSpec
要设置以便重新加载cmd
window.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ComSpec=
%SystemRoot%\system32\cmd.exe
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)