列出不带换行符的文件

列出不带换行符的文件

我有一个目录,里面有很多文件夹。我希望每个文件夹创建一个文本文件,列出该文件夹中的所有文件。列出文件的格式应如下所示:

"001.jpg" "002.jpg" "003.jpg" "004.jpg"

基本上它应该列出没有换行符的文件。如何在 Windows 7 中使用 cmd 来实现这一点?

答案1

您可以通过组合使用 CMD shell 来实现所需的结果福尔菲斯为了延迟变量扩展(也可以看看:命令)。

脚步

  1. 创建一个批处理文件(例如C:\jpglist.bat),并将以下指令保存到其中:

    @echo off
    if %2 == FALSE exit
    cd /D %1
    for %%a in (*.jpg) do set list=!list! "%%a"
    echo %list:~1%> jpglist.txt
    
  2. 打开命令提示符。

  3. 执行

    forfiles /P PATH /S /C "cmd /V:on /C C:\jpglist.bat @path @isdir"
    

    在哪里小路是主目录的完整路径。

  4. 不再需要该批处理文件。如果需要,请将其删除。

怎么运行的

命令:

  • forfiles /P PATH /S /C "..."递归地 ( /S) 通过小路及其子目录并...针对每个目录条目执行。

  • cmd /V:on /C ...打开一个启用了延迟变量扩展 () 的新 shell/V:on并执行...

  • C:\jpglist.bat @path @isdir调用批处理文件并将条目的完整路径作为第一个参数传递。

    @isdir真的如果@path是目录,则为错误的

批处理文件:

  • if %2 == FALSE exit如果第一个参数不是目录则立即退出。

  • cd /D %1更改为第一个参数中指定的目录(/D如果需要,可以切换驱动器)。

  • for %%a in (*.jpg) do set list=!list! "%%a"通过.jpg扩展并将其名称添加到变量中列表

    使用!list!代替%list%延迟变量的扩展,即列表将在每次迭代中扩展,而不是在开始时只扩展一次。

  • echo %list:~1%> jpglist.txt将变量的内容list(第一个字符除外,第一个字符为前导空格)写入名为jpg列表.txt在当前目录中。

答案2

ForEach($_ In Get-ChildItem "C:\Folder\" -Recurse -Directory)
{
    ForEach($file In Get-ChildItem -File $_.FullName)
    {
        [System.IO.File]::AppendAllText("$($_.FullName)\crazyList.txt", "`"$($file.Name)`" ", [System.Text.Encoding]::Unicode)
    }
}

这会在每个文件夹中输出一个文件,其格式与您指定的完全一致,并带有引号。

相关内容