无忧启动论坛

标题: 悬赏了,又来悬赏了,求一个批处理。微信红包! [打印本页]

作者: xxnh    时间: 2017-12-8 23:24
标题: 悬赏了,又来悬赏了,求一个批处理。微信红包!
求一个批处理。要求是删除除指定文件夹外的所有文件夹。比如原位置有AD,AS,ZX,3个文件夹,一个软件运行后会自动生成另外一个文件夹,名称未知,要求保留AD,AS,ZX,,删除另外一个未知的。
作者: nttwqz    时间: 2017-12-8 23:31
我X,钱都这么好赚,这简直是撒人民币啊!
作者: xxnh    时间: 2017-12-8 23:35
速度回复啊

作者: nttwqz    时间: 2017-12-8 23:40
本帖最后由 nttwqz 于 2017-12-8 23:55 编辑

免费赠送!

  1. @echo off
  2. pushd %~dp0\
  3. for /f "delims=" %%a in ('dir /ad /b *.*') do if /i not "%%~a"=="AD" if /i not "%%~a"=="AS" if /i not "%%~a"=="ZX" rd /s /q "%%~fa"
  4. pause
复制代码

作者: xxnh    时间: 2017-12-8 23:59
果然强大,谢谢

作者: xxnh    时间: 2017-12-9 00:00
请加我微信号xxnh11

作者: 窄口牛    时间: 2017-12-9 07:37
最好是先列表文件夹,运行程序,运行完再列表,对比出差文件夹,再删除。
作者: xxnh    时间: 2017-12-9 09:28
窄口牛 发表于 2017-12-9 07:37
最好是先列表文件夹,运行程序,运行完再列表,对比出差文件夹,再删除。

大侠,我正要提这个问题。算是增强要求。
作者: zitiano    时间: 2017-12-9 09:40
批处理不大了解,但易语言或Python写起来so easy
作者: 窄口牛    时间: 2017-12-9 11:14

手机,获取链接不容易,:pe部分就是
这个帖子后半部分有最终成品。
作者: 窄口牛    时间: 2017-12-9 11:29
本帖最后由 窄口牛 于 2017-12-9 11:43 编辑
  1. @echo off

  2. del /q temp.txt
  3. dir 你的路径 /a /b /a:d >>temp.txt
  4. start /wait 你的exe的路径和名字
  5. for /f "delims=" %%j in ('dir 你的路径 /a /b /a:d^|findstr /i /v /g:temp.txt') do rd /s /q c:\%%j
  6. exit
复制代码

作者: lintrainwy    时间: 2017-12-10 15:53

  1. call :dirlist listPre
  2. mkdir Dir2
  3. call :dirlist listLater

  4. rem 删除不同文件夹,删除相同文件夹使用:call :delDir true
  5. call :delDir false

  6. echo 运行前文件夹:%listPre%
  7. echo 运行后文件夹:%listLater%



  8. ::结束批处理
  9. ::======================
  10. goto :EOF
  11. :dirlist
  12. set listTemp=<nul
  13. FOR /F "usebackq tokens=* delims=" %%i in (`dir *.*  /B /A:D`) do (
  14.         set "listTemp=%%i/!listTemp!"
  15. )
  16. set "%~1=%listTemp%"
  17. goto :EOF
  18. ::======================
  19. goto :EOF
  20. :delDir
  21. set listLaterloop=%listLater%
  22. :delDir0
  23. FOR /F "usebackq tokens=1* delims=/" %%i in ( `echo !listLaterloop!` ) do (
  24.         if defined listLaterloop (
  25.                 set "i=%%i"
  26.                 set "j=%%j"
  27.        
  28.                 set "listPreloop=%listPre%"
  29.                 set "found=false"
  30.                 :delDir1
  31.                 FOR /F "usebackq tokens=1* delims=/" %%k in ( `echo !listPreloop!` ) do (
  32.                         if defined listPreloop (
  33.                                 if !i!==%%k set "found=true"
  34.                                 set "listPreloop=%%l" &goto :delDir1
  35.                         )
  36.                 )
  37.                 if !found!==%~1 rd /s /q !i! && echo 已删除文件夹:!i!
  38.                 set "listLaterloop=!j!" &goto :delDir0
  39.         )
  40. )
  41. goto :EOF
复制代码





欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3