Board logo

标题: 求助批处理实现文件各级子文件夹索引 [打印本页]

作者: HW_99    时间: 2023-7-2 22:02     标题: 求助批处理实现文件各级子文件夹索引

bat求助,两个需求用两个文件实现,bat1:从根目录开始遍历(1、每级子文件夹有.c或者.h文件就输出当前文件夹目录;如果当前还有文件夹就进入重复操作1另存为一个txt文件),bat2:在指定文件夹下的各级文件夹下输出当前文件夹及文件,文件夹另存为:文件夹名.gpj,文件名不变
作者: Batcher    时间: 2023-7-2 22:08

回复 1# HW_99


请给一个真实的例子说明一下你的需求吧,比如操作之前是怎样的,操作之后变成啥样?
如果需要上传文件,可以用阿里云盘或百度网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: zaqmlp    时间: 2023-7-2 22:09

本帖最后由 zaqmlp 于 2023-7-3 01:29 编辑
  1. @echo off&cd /d "%~dp0"
  2. set "out=folderlist.txt"
  3. type nul>"%out%"
  4. for /f "delims=" %%a in ('dir /ad-h/b/s') do (
  5.     set "f="
  6.     if exist "%%~a\*.c" set f=1
  7.     if exist "%%~a\*.h" set f=1
  8.     if defined f >>"%out%" echo;%%~a
  9. )
  10. pause
  11. exit
复制代码
  1. @echo off&cd /d "%~dp0"
  2. for /f "delims=" %%a in ('dir /ad-h/b/s') do (
  3.     pushd "%%~a\"
  4.     dir /a-h/b >"%tmp%\t.t"
  5.     copy /y "%tmp%\t.t" "%%~nxa.gpj" >nul
  6.     popd
  7. )
  8. pause
  9. exit
复制代码

作者: Batcher    时间: 2023-7-2 22:17

回复 1# HW_99

1.bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "MyFolder=C:\Users\2304388\Desktop\demo\project\"
  4. cd /d "%MyFolder%"
  5. (for /f "delims=" %%i in ('dir /b /s /a-d *.c *.h') do (
  6.     set "OldStr=%%~dpi"
  7.     set "NewStr=!OldStr:%MyFolder%=!"
  8.     set "NewStr=!NewStr:~0,-1!"
  9.     if not defined _!NewStr! (
  10.         echo,!NewStr!
  11.         set "_!NewStr!=1"
  12.     )
  13. ))>"C:\Users\2304388\Desktop\123.txt"
  14. endlocal
复制代码

作者: Batcher    时间: 2023-7-2 23:38

回复 1# HW_99


2.bat
  1. @echo off
  2. set "MyFolder=C:\Users\2304388\Desktop\demo\project\source"
  3. cd /d "%MyFolder%"
  4. for /f "delims=" %%i in ('dir /b /s /ad') do (
  5.     pushd "%%i"
  6.     if exist *.c (
  7.         if exist *.h (
  8.             (for /f "delims=" %%a in ('dir /b /ad 2^>nul') do (
  9.                 echo %%a.gpj
  10.             ))>"%temp%\%%~nxi.gpj"
  11.             dir /b /a-d >>"%temp%\%%~nxi.gpj" 2>nul
  12.             move /y "%temp%\%%~nxi.gpj" . >nul
  13.         )
  14.     )
  15.     popd
  16. )
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2