【问题标题】:CMD Command Prompt DIR Batch FileCMD 命令提示 DIR 批处理文件
【发布时间】:2015-09-18 15:09:16
【问题描述】:

我在下面创建了一个批处理文件:

TITLE Project Folders
DIR S:\"Project Folder 2014\Projects" /T:C /O:-N > S:\MyFolder\dir01.txt
DIR S:\"Project Folder 2014\Projects" /T:W /O:-N > S:\MyFolder\dir02.txt
DIR S:\"Project Folder 2014\Projects" /T:A /O:-N > S:\MyFolder\dir03.txt
S:
CD MyFolder
REN dir01.txt dir01.txt.old
REN dir02.txt dir02.txt.old
REN dir03.txt dir03.txt.old
FINDSTR /V "Volume Directory .. bytes" dir01.txt.old > dir01.txt
FINDSTR /V "Volume Directory .. bytes" dir02.txt.old > dir02.txt
FINDSTR /V "Volume Directory .. bytes" dir03.txt.old > dir03.txt
DEL dir01.txt.old dir02.txt.old dir03.txt.old
PAUSE

我想知道是否有人可以帮助我更接近从dir > dir.txt 中删除页眉和页脚。我不能使用裸格式,因为我使用创建、修改和访问的日期来监控每个项目。然后我将这些文本文件导入 Excel。我很好奇是否有办法通过批处理来做到这一点,所以我不必每次都在 Excel 中剔除文本文件。

【问题讨论】:

  • 虽然S:\"Folder Name" 有效,但最好将整个路径括起来:"S:\Folder Name"
  • Cross-posted 在 SU

标签: batch-file cmd dir


【解决方案1】:

使用正则表达式将其导入findstr,以便提取以数字开头的行(日期是默认目录列表中的第一列)。像这样的:

dir "S:\Project Folder 2014\Projects" | findstr /R "^[0-9]" > S:\MyFolder\dir01.txt

【讨论】:

  • 我试了一下,但不明白正则表达式的逻辑,“^[1-9]”返回了7个随机行。您是否愿意详细说明或解释您的逻辑。这似乎是一种系统性的事情,因为 DIR 将始终返回前 5 行,其中包含路径、驱动器的卷标、卷序列号、空白行、驱动器目录:文件夹、空白行。这就是我使用特定 FINDSTR 删除线条的原因。
  • 检查findstr /?的输出。正则表达式应返回所有以数字 (0-9) 开头的行。 (我刚刚更正了字符的范围/类别以包含零)。插入符号^ 告诉它检查该数字模式的行首。由于您引用的行(卷标等)不以数字开头,此findstr 命令将排除那些不需要的行。
  • 感谢帮助解释。查找str /?显然很有帮助,但我一次只能坐下来做这么多的修补;也许午饭后我就能鼓起精神。我是 CMD 的菜鸟,昨天刚刚创建了我的第一个批处理文件(很遗憾),但总是有改进的空间和学习的时间。再次感谢您的帮助;我只是怀疑有一个更简单的解决方案。我知道这可以很容易地在 Windows 资源管理器中查看以查看这些值,但我正在尝试尽可能地自动化这个过程。是时候开始使用一些 Excel VBA 8^$
  • 请确认它有效,我认为它会有效,如果有效,请批准答案。谢谢!
  • @MLowry54,太好了。你能批准答案吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 2013-01-25
  • 2023-03-16
  • 2021-09-18
  • 1970-01-01
相关资源
最近更新 更多