[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

回复 1# HW_99


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

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 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
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 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
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 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. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表