Batch file Windows 3.1 DOS中的For循环
我已经编写了如下的批处理脚本Batch file Windows 3.1 DOS中的For循环,batch-file,windows-3.1,Batch File,Windows 3.1,我已经编写了如下的批处理脚本 for -f %%a in ('dir /b') do command 此脚本在Windows XP中工作,但现在我想在Windows 3.11中运行它 它给出了一个语法错误;Windows 3.1的DOS似乎不支持'for-f%%a in('command') 您能建议我在Windows 3.1中使用什么命令来实现同等功能吗?您是对的;Windows 3.1不支持此语法。 它是由Windows NT中的cmd.exe添加的 我认为您不会发现Windows 3.1
for -f %%a in ('dir /b') do command
此脚本在Windows XP中工作,但现在我想在Windows 3.11中运行它
它给出了一个语法错误;Windows 3.1的DOS似乎不支持'for-f%%a in('command')
您能建议我在Windows 3.1中使用什么命令来实现同等功能吗?您是对的;Windows 3.1不支持此语法。
它是由Windows NT中的
cmd.exe
添加的
我认为您不会发现Windows 3.1中包含的等效命令。编辑:我错了;见亚伯的回答
为什么要使用这样一个史前操作系统?在DOS 5.0中,不能在语句的(…)部分的
中使用命令。不过,您可以执行以下操作:
FOR -F %%A IN (*.txt) DO command
它将对扩展名为txt的每个文件执行命令
。换句话说,dir
命令是隐式的
我从Jeff Prosise的DOS 5中得到了这个信息。当时是不可或缺的,现在相当尘土飞扬。不知道我还会用它;-)
编辑:似乎不需要间接寻址(参见历史记录)。以上陈述就是你所需要的。即,以下工作和打印每个文件:
FOR -F %%A IN (*.txt) DO TYPE %%A
你到底为什么要使用Windows 3.1?也许他正在将各种恐龙操作系统连接到一个网络上,就像我在网络课上所做的那样。OMG:它在2008年之前一直被用于嵌入式应用程序!!人民网:我们见证了一个具有历史意义的事件:Windows3.1死而复生+1,关于Windows 3.1A,请注意:*.txt
周围不应该有引号,这些在当时是不受支持的(文件名中的空格或长文件名无论如何都不受支持)。与原始问题等价的是(*)
,而不是(*.txt)
。Abel:虽然引号不存在,在MS-DOS文件名中,空格的确是合法的:@Rössel:有趣。我知道这一点,但我的印象是,在内部,空格被替换为Ext ASCII 0xFF,但显然这个假设是错误的(都是15年前的事了……)