Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file Windows 3.1 DOS中的For循环_Batch File_Windows 3.1 - Fatal编程技术网

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年前的事了……)