【问题标题】:Loop Syntax error in MS-DOS 6.22MS-DOS 6.22 中的循环语法错误
【发布时间】:2015-01-20 11:10:11
【问题描述】:

我正在尝试使用脚本来获取运行 MS DOS 6.22 的虚拟 PC 上的最后修改日期。 但是每当我找到包含循环的解决方案时,它都会在控制台中显示语法错误。 这是显示这一点的行之一:

for /d %%a in ("C:\log") do echo Modified date: %%~ta

dos 6.22 与循环不兼容吗?我对这个版本有很多限制(不能使用 robocopy、date 等...)

【问题讨论】:

  • 是的,循环语法仅适用于 Windows(NT 4.0 及更高版本)。它在 MS-DOS 中不受支持。但是你到底为什么要使用 MS-DOS?
  • 在这种情况下,你唯一的希望是goto ... 这么说很伤人,但似乎是唯一的方法。请参阅此book 以获取一些示例...我衷心祝您好运(我认为在这种环境下工作不是您的选择...)。
  • 附带一个问题:自 2001-12-31 以来,MS-DOS 不受支持。为什么这个软件/脚本仍在这个遗留平台/操作系统中开发?

标签: loops batch-file dos virtual-pc


【解决方案1】:

支持循环语法,但有一点限制(另请参阅for /?)。

FOR %A in (filelist) do myCmd %%A

所以根本没有开关。

我记得在大多数情况下,使用 DOS 无法捕获数据。
即使拆分一个简单的字符串也非常困难。

但是,如果您绝对需要它(或玩得开心),您可以将带有FOR 循环的字符串拆分为第一个字符,其余的按

for %%A in (/%var%) do echo %%A

但是保存第一个字符有点棘手......

或者您可以使用edlindebug解析 字符串。

诸如请求文件的最后修改日期之类的高级内容已落后于 ms-dos。

但是为什么不尝试从主机访问虚拟机的内部文件系统呢?
然后您还可以使用所有现代技术,例如 cmd.exe 批处理

【讨论】:

  • 其实我需要从WindTurbine收集数据,而且机器运行在这个糟糕的MS DOS版本上,过了半天我可以激活文件共享并复制一些数据。但我想自动完成,一个 10 分钟的例行程序,我被困在这一点上。这个版本太有限了。谢谢你的回答:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-19
  • 1970-01-01
  • 2017-07-09
  • 2014-10-14
  • 1970-01-01
  • 2015-04-17
相关资源
最近更新 更多