请帮忙!我是创建批处理文件的新手。
我正在尝试创建一个批处理文件来执行以下操作:
例如,“文件夹1”包含以下三个文件:test1.docx,test2.docx,test3.xlsx 批处理文件将搜索这三个扩展名为.docx的文件,然后输出到文本文件(即search_result.txt)
在search_result.txt中,它将采用以下格式:
1 test1.docx
2 test2.docx
这是我到目前为止所做的上面提到的#1和#2项目,但我需要帮助来实现#3。
@echo off
for /r %%i in (*.docx) do echo %%~nxi >> search_result.txt
提前感谢您的帮助。
答案 0 :(得分:6)
@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 :(得分:0)
假设索引只是匹配数的递增计数,您可以使用一个变量并在循环的每次迭代中递增它。您需要启用变量的延迟扩展才能生效,这可以防止在首次计算循环时使用的变量以及每次迭代使用的相同扩展变量。然后,您可以使用!counter来引用变量!而不是%扩大%。
我认为这样的事情应该有效,但我没有运行它,所以你可能需要调整它:
@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
有关延迟扩展的更多信息,请查看此答案:How do I increment a DOS variable in a FOR /F loop?