批处理文件:列出目录中的所有文件,并按顺序缩进

4212额外

我是刚开始编写批处理文件,并且正在尝试实现输出文件,如下所示:

C:\
---Folder1
      ---files
      ---files
---Folder2
      ---files
I also want the path of each file

使用/ tree尝试过,但是我需要文本文件中的输出。我不想使用/ tree,因为这些行会出现。我想将文件解析为数据框。因此,我不需要任何符号或箭头。我需要使用空格。

哈克

第一个解决方案基于@Ken White的评论,正如他所说的那样tree /A,它可以正常工作,并且可以使用默认的Consolas字体在记事本中正确显示。

@echo off
Set "PathFolder=C:\temp"
Set "LogFile=C:\temp\Tree_Result.txt"
Rem simply pipe tree output to skip the two lines in the header
Tree "%PathFolder%" /F /A | more +2>"%LogFile%" 
If Exist "%LogFile%" Start "" "%LogFile%"

输出是这样的:

C:\TEMP
|   1155.tif
|   check.txt
|   filetest.txt
|   InitJsonInSvc.dat
|   InitJsonOutSvc.dat
|   test.txt
|   Tmp_Output.txt
|   Tree_Output.txt
|   Tree_Result.txt
|   
+---Exiland Backup
|       parametre.ini
|       
\---Test
    |   parametre.ini
    |   
    +---Exiland Backup
    |       parametre.ini
    |       
    \---Nouveau dossier
            b.txt
            c.txt
            parametre.ini
            vide.ini

我在Windows 10(32位)法语版本上创建并测试的第二个解决方案类似于以下混合代码:

<!-- :
@echo off
Title Replace unwanted Characters in the command Tree and save it into file by Hackoo 2019
setlocal enableExtensions enableDelayedExpansion
::ÿþ
set "cp="
for /F "tokens=2 delims=:." %%a in ('chcp') do set "cp=%%~a"
if not defined cp set "cp=850"
>nul chcp 65001

Set "PathFolder=C:\temp"
Set "TmpFile=C:\temp\Tmp_Output.txt"
Set "LogFile=C:\temp\Tree_Output.txt"

PowerShell ^
Tree "!PathFolder!" /F ^| Select-Object -Skip 2 ^| Set-Content !TmpFile! -Encoding unicode;
cscript //nologo "%~f0?.wsf" //job:ReplaceString "!TmpFile!" "�" " ">"!LogFile!"
If Exist "!LogFile!" Start "" "!LogFile!"
endlocal
>nul chcp %cp%
exit /b
--->
<job id="ReplaceString">
    <script language="Vbscript">
    Dim fso,File,Char,ReplaceChar,ReadAll
    Set FSO = CreateObject("Scripting.FileSystemObject") 
    InputFile=WScript.Arguments(0)
    Char=WScript.Arguments(1)
    ReplaceChar=WScript.Arguments(2)
    Set oFile = FSO.OpenTextFile(InputFile, 1, False, -1)
    strData = oFile.ReadAll
    WScript.echo(Replace(strData,Char,ReplaceChar))
    </script>
</job>

所以我得到这样的输出文本:

C:\TEMP
    1155.tif
    check.txt
    filetest.txt
    InitJsonInSvc.dat
    InitJsonOutSvc.dat
    test.txt
    Tree_Result.txt

    Exiland Backup
        parametre.ini

    Test
        parametre.ini

        Exiland Backup
            parametre.ini

        Nouveau dossier
            b.txt
            c.txt
            parametre.ini
            vide.ini

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用批处理文件以编号顺序列出文件夹中特定扩展名的所有文件

批处理文件;列出目录中的文件,仅列出文件名?

批处理文件将目录中的所有文件转换为ATF

在给定目录中运行所有批处理文件

如何编写批处理文件以裁剪目录中的所有pdf文件并将其存储在新目录中?

批处理文件以列出所有文件并将其中之一保存在循环中的变量中

批处理文件,删除目录中除最新文件夹外的所有文件夹

禁止此批处理文件中的所有输出

命令行/批处理文件列出所有jar文件?

使用批处理文件以相同的扩展名顺序重命名所有文件

批处理文件-选择,缩进提示

如何通过批处理文件获取所有.h文件的父目录?

批处理-回显批处理文件中设置的所有变量

如何创建Windows批处理文件,在每个目录中递归地合并所有* NAD.TXT?

窗口批处理文件-从文件路径中删除目录

批处理文件列出名为 #、A、B、C、D、到 Z 的子文件夹中的所有电影文件

批处理文件,用于获取文件夹中的所有文件名

如何对文件夹中的所有文件运行批处理文件?

Windows批处理文件:转换子文件夹中的所有文件

如何将所有带有批处理文件移动的文件登录到文本文件中,并且目标目录包含在日志中?

批处理文件以启动XP开始文件夹中的所有程序

调用VB文件后,循环遍历批处理文件中的所有元素

需要使用批处理文件将csv文件中的所有记录的“””替换为“”

For循环不会遍历批处理文件中的所有文件

在批处理文件的所有子文件夹中运行命令

是否为指定用户删除%LOCALAPPDATA%中的所有* .auc文件的批处理文件?

通过批处理文件从子文件夹中删除所有内容

在所有子文件夹中运行批处理文件

批处理文件以更改从Powershell中运行的目录