将文件夹从目录导出到文本文档。间距问题

时间:2016-02-23 17:57:43

标签: batch-file

我正在尝试使用dir命令导出文件夹列表。我遇到的问题是每当我尝试导出包含空格或其他特殊字符(如())的目录时。

我想将代码保留为这种格式。

ECHO OFF & setLocal EnableDELAYedExpansion


REM Works!
for /d %%a in ("C:\Windows\Boot") do dir /a:D /on /b "%%a" > dork.TXT


REM Empty Text Doc
for /d %%a in ("C:\Program Files (x86)") do dir /a:D /on /b "%%a" > dork1.TXT


REM Empty Text Doc
for /d %%a in ("C:\Program Files") do dir /a:D /on /b "%%a" > dork2.TXT


REM Empty Text Doc
for /d %%a in (C:\Program Files) do dir /a:D /on /b "%%a" > dork3.TXT


REM kills Batch in its tracks
for /d %%a in (C:\Program Files (x86)) do dir /a:D /on /b "%%a" > dork4.TXT

2 个答案:

答案 0 :(得分:0)

试试这样:

@echo off
(for /f "delims=" %%a in ('dir /a:D /on /b "C:\Program Files (x86)"') do echo %%a)>dork1.TXT

答案 1 :(得分:0)

阅读HELP FOR,并在命令行中尝试此命令

for /D %a in ("c:\windows\boot\*") do @echo %~nxa

它遍历所有目录(/D)并回显找到的文件的名称和扩展名(%~nx)(%a

然后,要迭代所有目录,请尝试

for %a in ("C:\Windows\Boot" "C:\Program Files (x86)" "C:\Program Files") do @for /d %b in ("%~a\*") do @echo %b

最后,更改语法以适应bat文件

for %%a in ("C:\Windows\Boot" "C:\Program Files (x86)" "C:\Program Files") do (
  for /d %%b in ("%%~a\*") do (
    echo %%b
  )
)

并根据需要重定向输出。