【问题标题】:Batch: Concatinated filesnames into a CSV-File批处理:将文件名连接到 CSV 文件中
【发布时间】:2014-01-29 15:58:34
【问题描述】:

我想要 csv 文件中文件夹和子文件夹中文件的所有文件名。为此,我编写了一个运行良好的批处理脚本:

set "Folder=N:\myFolder\mySubFolder\mySubSubFolder"
dir /b "%Folder%">"Z:\worx\filenames.csv"

filenames.csv 的内容是这样的:

N:\myFolder\file1.txt
N:\myFolder\mySubFolder\file2.txt
N:\myFolder\mySubFolder\mySubSubFolder\file3.txt

现在我想连接 csv 文件中的每一行。结果必须如下所示:

The File:N:\myFolder\file1.txt#exists
The File:N:\myFolder\mySubFolder\file2.txt#exists
The File:N:\myFolder\mySubFolder\mySubSubFolder\file3.txt#exists

有人知道一个简单的方法吗?

我考虑过另一个批处理文件,它只是扩展了 csv 文件的每一行,但我正在寻找一种不太复杂的方法。

【问题讨论】:

    标签: csv concatenation filenames batch-processing dir


    【解决方案1】:

    试试这个:

    @echo off
    set "Folder=N:\myFolder\mySubFolder\mySubSubFolder"
    (for /f "delims=" %%a in ('dir /b /s /a-d "%Folder%" ') do echo The File:%%a#exists)>"Z:\worx\filenames.csv"
    

    【讨论】:

      【解决方案2】:
      set "Folder=N:\myFolder\mySubFolder\mySubSubFolder"
      (
      for /f "delims=" %%x in ('dir /b "%Folder%"') do echo(The File:%%x#exists
      )>"Z:\worx\filenames.csv"
      

      应该可以。文件名应用于%%x 并以固定的前后文本输出。 "delims=" 使每个 dir /b 行成为一个字符串而不是一系列标记。 (for...) 周围的括号使重定向器将任何echoed 文本输出到目标文件中。 > 重定向器重新创建目标文件。 >> 将附加到任何现有文件。

      您可能希望考虑将/a-d 添加到您的dir 开关以抑制目录名称。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-18
        • 1970-01-01
        • 2014-08-10
        • 1970-01-01
        • 2010-12-02
        • 1970-01-01
        • 2013-11-17
        • 1970-01-01
        相关资源
        最近更新 更多