跳过.bat脚本中的隐藏文件夹


1

我试图找到一种方法来获取所有文件的列表,而没有隐藏目录。我已经尝试过像这样的几种变体:

dir  /b  /s  /a:-h  z:\  >toc-z.txt

但这只会跳过隐藏的文件。我需要一个清单,其中不包括所有隐藏文件夹,包括这些隐藏文件夹的文件和子文件夹。

有什么方法可以跳过对隐藏文件夹的分析和列出?


不能使用简单的dir命令,因为它仍将显示隐藏文件夹内的文件和文件夹,但它们本身不会被隐藏。使用PowerShell而不是批处理来执行此操作可能更简单,或者使用更好的shell(例如Take Command),其dir命令支持扩展选项,例如“ / Nd:跳过隐藏目录(与/ S一起使用时)”。
卡兰

Answers:


0

这有点骇人听闻,但您可能可以将xcopy命令与/land /s(或也许/e)选项一起使用。关键是该/l选项,它告诉它显示复制的文件列表,而不是进行任何复制。默认情况下,xcopy不复制隐藏文件或系统文件,因此它们将被忽略。


0

这是一个很长的命令,但是它有效,并且速度非常快:-)

在这里,它就像一条长长的命令行

>toc-z.txt ((for %F in ("z:\*") do @echo %F)&for /f "delims=" %D in ('dir /s /ad-h-l /b z:\*^|sort') do @for %F in ("%D\*") do @echo %F)

这是一个批处理文件

@echo off
>toc-z.txt (
  for %%F in ("z:\*") do @echo %%F
  for /f "delims=" %%D in (
    'dir /s /ad-h-l /b z:\*^|sort'
  ) do for %%F in ("%%D\*") do echo %%F
)

编辑-主要修复:1)添加了日志,2)添加了根文件,3)使根z:\ 4)消除了重新解析点,5)首先将输出排序为深度
dbenham
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.