找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 12758|回复: 4

求助批处理实现文件各级子文件夹索引

  [复制链接]
发表于 2023-7-2 22:02:38 | 显示全部楼层 |阅读模式
bat求助,两个需求用两个文件实现,bat1:从根目录开始遍历(1、每级子文件夹有.c或者.h文件就输出当前文件夹目录;如果当前还有文件夹就进入重复操作1另存为一个txt文件),bat2:在指定文件夹下的各级文件夹下输出当前文件夹及文件,文件夹另存为:文件夹名.gpj,文件名不变
发表于 2023-7-2 22:08:09 | 显示全部楼层
回复 1# HW_99


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

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
发表于 2023-7-2 22:09:12 | 显示全部楼层
本帖最后由 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
复制代码
发表于 2023-7-2 22:17:22 | 显示全部楼层
回复 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
复制代码
发表于 2023-7-2 23:38:46 | 显示全部楼层
回复 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. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:28 , Processed in 0.017289 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表