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

[文件操作] 请教BAT脚本文件批量删除的问题

[复制链接]
发表于 2021-3-28 21:50:34 | 显示全部楼层 |阅读模式
各位好, 在写一个批处理的时候,遇到一个问题,

需要达到的效果是:删除C盘users目录下超过三十天为使用的文件夹(特定用户的文件夹),但不删除当前运行这个bat脚本用户的文件夹,因为脚本是在域控环境中运行的,所以现在

有两个情况1.一个域控中的电脑用户文件都有一个特定的标识都带有 “_v” ,2.另外一个域控中的电脑没有规律,一般以姓名全称来命名。

下面是我写的,可以解决第一种情况的问题,但是第二种情况需要怎么删除,没有什么思路,还请大家给点建议, 谢谢

  1. @echo on
  2. cd C:\Users\
  3. for /d %%G in ("*_v") do rd /s /q "%%~G"
复制代码
发表于 2021-3-29 10:29:52 | 显示全部楼层
回复 1# xuxianking
  1. @echo off
  2. if exist "%SystemDrive%\Users" (
  3.     pushd "%SystemDrive%\Users"
  4. ) else (
  5.     goto :eof
  6. )
  7. for /f "delims=" %%i in ('dir /b /ad ^| findstr /r /v /c:"^All Users$" /c:"^Default User$" /c:"^Default$" /c:"^Administrator$" /c:"^Public$"') do (
  8.     echo rd /s /q "%%i"
  9. )
  10. popd
  11. pause
复制代码
 楼主| 发表于 2021-3-29 11:04:19 | 显示全部楼层
回复 2# Batcher

感谢, 我先试试,再请教一下下面这一行的命令

“for /f "delims=" %%i in ('dir /b /ad ^| findstr /r /v /c:"^All Users$" /c:"^Default User$" /c:"^Default$" /c:"^Administrator$" /c:"^Public$"') do (   ”  

这一行的意思是排除掉“c:"^All Users$" /c:"^Default User$" /c:"^Default$" /c:"^Administrator$" /c:"^Public”这几个文件夹吗? 之前手动删除文件的时候,测试过如果“c:"^Default User$" /c:"^Default$"/c:"^Public$" ” 被删除, 会影响后续用户登录
发表于 2021-3-29 11:20:29 | 显示全部楼层
回复 3# xuxianking


    是的,就是排除掉那几个文件夹。
 楼主| 发表于 2021-4-15 12:47:00 | 显示全部楼层
回复 4# Batcher

测试的结果是这样的,能找到文件夹, 但是无法删除。

c:\>deltest.bat

c:\>if exist "C:\Users" (pushd "C:\Users" )  else (goto :eof )

C:\Users>for /F "delims=" %i in ('dir /b /ad | findstr /r /v /c:"^All Users$" /c:"^Default User$" /c:"^Default$" /c:"^Administrator$" /c:"^Public$"') do (echo rd /s /q "%i" )

C:\Users>(echo rd /s /q "gongkai_v" )
rd /s /q "gongkai_v"

C:\Users>(echo rd /s /q "lujiayao_v" )
rd /s /q "lujiayao_v"

C:\Users>(echo rd /s /q "sz-luoxiaojia" )
rd /s /q "sz-luoxiaojia"

C:\Users>(echo rd /s /q "szadmin" )
rd /s /q "szadmin"

C:\Users>(echo rd /s /q "szuser" )
rd /s /q "szuser"

C:\Users>(echo rd /s /q "TEMP" )
rd /s /q "TEMP"

C:\Users>(echo rd /s /q "test" )
rd /s /q "test"

C:\Users>(echo rd /s /q "yangziwei_v" )
rd /s /q "yangziwei_v"

C:\Users>(echo rd /s /q "zhaofan5_v" )
rd /s /q "zhaofan5_v"

C:\Users>popd

c:\>pause
请按任意键继续. . .
发表于 2021-4-15 13:46:49 | 显示全部楼层
回复 5# xuxianking


    2楼代码第8行的echo删掉
 楼主| 发表于 2021-4-15 13:52:47 | 显示全部楼层
回复 2# Batcher



找到原因了 删除掉“echo rd /s /q”中的“echo” 就可以了,如果排除当前用户的文件夹?如果我要删30天之前的用户,需要添加什么命令?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 13:23 , Processed in 0.012492 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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