【问题标题】:Display Multiple Characters in MS-DOS output在 MS-DOS 输出中显示多个字符
【发布时间】:2020-12-23 06:29:07
【问题描述】:

如何在 MS-Dos 命令中显示多个字符

例如,如果我想显示当前目录中以 A 开头的所有内容,我可能会在 CMD 中键入以下命令。

dir/b A*

但是如果我想显示 A-M 的所有内容怎么办?我将如何告诉计算机显示多个​​字符?

【问题讨论】:

  • 这和[powershell]有什么关系?另外,你到底在做什么运行 MS-DOS? [grin] 我想你真的是指 BAT/CMD 的东西,而不是旧的 MS-DOS。
  • 是的,我指的是新的 CMD。
  • Windows 10 中没有“新 CMD”。[grin] 默认 shell 运行 powershell ...不是 CMD。例如,PoSh 中的 dir 命令实际上是 Get-ChildItem 的别名 - PoSh cmdlet,而不是 CMD 命令。 ///// 所以,请决定你真正想要使用什么......并删除其他项目。*

标签: powershell command-line command-line-arguments command-prompt


【解决方案1】:

(用于 PowerShell)ls 命令用于列出当前目录并在添加 A* 之后。 所以命令是ls A*(它也会列出以a开头的名称)。
如果要使用正则表达式进行过滤

Get-ChildItem | Where-Object { $_.Name -Match 'RegularExpression' }

以字母开头的正则表达式是^[A-M]+.
-Match 更改为CMatch 以表示资本敏感。

【讨论】:

    【解决方案2】:

    使用cmd 为您提供两种可能性:列出每个所需字母的文件:

    dir /b a* b* c* d* ... m*
    

    由于对列表进行了硬编码,这既尴尬又不灵活。即使使用for 循环也不是更好:

    for %a in (a b c d e ... m) do @dir /b %a*
    

    如果您只需要两个或三个字母,这可能会很好。

    第二种(更灵活也可能更快)方法:获取整个列表并对其进行过滤:

    dir /b | findstr /rib "[a-m]"
    

    对于不连续的字母(a*、b*、m*、n*、x*、y*):

    dir /b | findstr /rib "[abmnxy]"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-22
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 2017-11-28
      • 2016-02-20
      • 2015-06-12
      相关资源
      最近更新 更多