Batch file 如何创建批处理文件以搜索文件夹中具有特定扩展名的文件?

Batch file 如何创建批处理文件以搜索文件夹中具有特定扩展名的文件?,batch-file,Batch File,请帮忙!我创建了一个新的批处理文件 我正在尝试创建批处理文件以执行以下操作: 在文件夹中搜索具有特定文件扩展名(即docx)的文件 将文件名和扩展名输出到文本文件(.txt) 在文本文件中,我想在文件名之前添加一个索引 例如,“文件夹1”有以下三个文件:test1.docx、test2.docx、test3.xlsx 批处理文件将搜索扩展名为.docx的这三个文件,然后输出到文本文件(即search_result.txt) 在search_result.txt中,其格式如下: 1测试1.docx

请帮忙!我创建了一个新的批处理文件

我正在尝试创建批处理文件以执行以下操作:

  • 在文件夹中搜索具有特定文件扩展名(即docx)的文件
  • 将文件名和扩展名输出到文本文件(.txt)
  • 在文本文件中,我想在文件名之前添加一个索引
  • 例如,“文件夹1”有以下三个文件:test1.docx、test2.docx、test3.xlsx 批处理文件将搜索扩展名为.docx的这三个文件,然后输出到文本文件(即search_result.txt)

    在search_result.txt中,其格式如下:

    1测试1.docx
    2.test2.docx

    这是我目前正在做的事情,上面提到的第1项和第2项,但我需要帮助来实施第3项


    提前感谢您的帮助。

    假设索引只是匹配数的递增计数,您可以使用一个变量,并在循环的每次迭代中递增它。您需要启用变量的延迟扩展才能使其工作,这可以防止在首次计算循环时扩展变量,并在每次迭代中使用相同的扩展变量。然后可以使用!柜台而不是%

    @echo off
    setlocal enabledelayedexpansion
    set /a counter=1
    for /r %%i in (*.docx) do (
    
      echo !counter! %%~nxi >> search_result.txt
      set /a counter=!counter!+1
    )
    endlocal
    
    我认为这样应该可以,但我还没有运行它,所以您可能需要调整它:

    @echo off
    setlocal ENABLEDELAYEDEXPANSION
    set /a counter=1
    for /r %%i in (*.docx) do (
        echo !counter! %%~nxi >> search_result.txt
        set /a counter=!counter!+1
    )
    endlocal
    

    查看此答案,了解有关延迟扩展的更多信息:

    在文件名之前添加索引是什么意思?我想他指的是“索引号”/序列号:1、2、3@罗伯特·哈维西也是
    @echo off
    setlocal ENABLEDELAYEDEXPANSION
    set /a counter=1
    for /r %%i in (*.docx) do (
        echo !counter! %%~nxi >> search_result.txt
        set /a counter=!counter!+1
    )
    endlocal