协助FOR / F循环

我有350,000个文件夹,里面有19,000个文件,需要你帮忙做一点点巫术。

我有一个批处理运行,将添加文件名后面的文件—总是在第5行。

我遇到的问题是,它只会运行在我指向的文件夹内的文件,而不是recursion的子目录。

我无法find解决方法允许/f/r在同一时间运行和forfiles似乎不喜欢令牌。 当在DIR附近的任何位置插入时, Dir /s给了我错误的语法。

代码

 @ECHO OFF SETLOCAL EnableDelayedExpansion cd ./Data/* for /f "tokens=*" %%a IN ('DIR /b /ad "*.*"') DO ( type %%a >>"Temp.txt" echo %%a>>Temp.txt del %%a ren "Temp.txt" "%%a" ) pause 

文件/文件夹示例

 \Data\BatchFile.bat \Data\file.txt (will change) \Data\1\file.txt (won't change) \Data\2\file.txt (won't change) etc 

任何援助将不胜感激。 我目前卡住,似乎无法find解决办法。 我会让你跟上我的进展。

 cd .\Data for /f "delims=" %%a IN ('DIR /s /b /ad "*.*"') DO echo %%a>>"%%a" 

做你想做的事(将文件名追加到树中每个文件的末尾)

请注意, /是一个开关,'\'是一个目录分隔符。 有时你可以使用/代替\但不总是…

此外, cd .\datacd data将做同样的事情。 cd将当前目录(“记录”目录)更改为目标。 添加\*部分是没有意义的 – 您只能一次登录到一个目录。

目前还不清楚“5号线”或“—”与这件事有什么关系。 他们没有在你提供的代码中解决。

 for /f "delims=" %%a IN ('DIR /s /b /ad "*.*"') DO echo %%~nxa>>"%%a" 

只会追加文件名+扩展名(无路径)