2016-02-22 61 views
0

我想创建一个批处理文件,递归列出的Windows但在一个类似Linux的format.For例如,考虑下面的批处理文件目录:批处理文件列出递归在Windows目录,在linux

@echo off 
tree /f /a C:\Windows\Boot\dvd>%userprofile%\desktop\tree_output.txt 
exit 

此批处理文件将树命令的输出回显或保存在用户桌面文件夹中名为tree_output.txt的文本文件中(/ f参数也列出子目录中的所有文件,而/ a参数显示树命令的输出采用ASCII文本格式,而不是图形格式)。 的tree_output.txt包含以下的输出:

Folder PATH listing for volume System 
Volume serial number is 4E00004E 545D:650E 
C:\WINDOWS\BOOT\DVD 
+---EFI 
| | BCD 
| | boot.sdi 
| | 
| \---en-US 
|   efisys.bin 
|   efisys_noprompt.bin 
|   
\---PCAT 
    | BCD 
    | boot.sdi 
    | etfsboot.com 
    | 
    \---en-US 
      | bootfix.bin 

然而,LS -R命令Linux的将列出了目录递归是这样的:

C:\WINDOWS\BOOT\DVD\ 
C:\WINDOWS\BOOT\DVD\EFI 
C:\WINDOWS\BOOT\DVD\EFI\BCD 
C:\WINDOWS\BOOT\DVD\EFI\boot.sdi 
C:\WINDOWS\BOOT\DVD\EFI\en-US 
C:\WINDOWS\BOOT\DVD\EFI\en-US\efisys_noprompt.bin 
C:\WINDOWS\BOOT\DVD\PCAT 
C:\WINDOWS\BOOT\DVD\PCAT\BCD 
C:\WINDOWS\BOOT\DVD\PCAT\boot.sdi 
C:\WINDOWS\BOOT\DVD\PCAT\etfsboot.com 
C:\WINDOWS\BOOT\DVD\PCAT\en-US 
C:\WINDOWS\BOOT\DVD\PCAT\en-US\bootfix.bin 

有什么通过创建批处理文件在Windows中的文本文件中获取上述输出的方法?我试图做到目前为止可以概括为:

  • 使用命令检查由上述批处理文件创建的文本文件,检查\字符识别目录的存在(如输出文本文件中所示)以及findstr命令。此方法部分失败,部分原因是由于目录树的目录(本例中为C:\ WINDOWS \ BOOT \ DVD)中的目录由+字符标识(如您在输出文本文件中所看到的)。

到目前为止,我所了解的是,通过使用任何内置命令和来自cmd的任何参数或参数都无法实现此目的。我想解决这个问题的方法是首先在批处理文件中使用tree/f/a命令获取树,然后使用任何其他批处理文件或者甚至可以使用C++程序来获得输出,如linux

+1

等效命令'LS'是'DIR'。 'dir/s/b' – Squashman

+0

你从哪里得到这些错误信息。阅读DIR命令的帮助文件! – Squashman

+0

以前我没有阅读dir命令的手册页,我对自己感到非常抱歉和惭愧。这真的解决了我的问题。谢谢 :) – user561716

回答

0

我认为你正在寻找

dir /a:d /s /b /o:n 

/s用于递归,/b裸格式,所以没有的filesizes等,/a:d只用于显示目录和/o:n是名订购。

0

尝试DIR/S/B /广告

这是子目录裸露和目录属性

相关问题