我得到了第一个经验性答案:
for /f %%s in (version.txt) do ...
在每台计算机上都可以正常工作。
它似乎for /f
适用于文件名,而不适用于任何 dos 命令,如“类型文件名”。
但是,这不适用于我所有客户的计算机(在某些情况下,“类型文件名”工作正常)
如果您想要 15(简单?)点 ;-),您可以回答这个问题:
为什么 'for /f' 有时除了文件名之外不能使用其他任何东西。为什么它只是关闭 DOS 会话?
编辑:3 年后(!),barlop遇到了类似的情况,在问题“for /f
立即关闭 cmd 提示符? ”中有详细说明。他的结论是:
COMSPEC
做SET
+时确实列出了ENTER。
所以,我打开了环境变量窗口,发现COMSPEC
没有在用户或系统变量下列出。我将它添加到系统变量中,启动了命令提示符,它似乎工作正常。
Andriy M在回答 barlop 的问题时提到了ss64 论坛上的这个帖子,其中包含详细信息。
为了重新加载窗口,需要设置 " for
" 循环中的脱壳以完成 ' dir
'(或您要求完成的任何命令) 。ComSpec
cmd
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ComSpec=
%SystemRoot%\system32\cmd.exe