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

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

各位好, 在写一个批处理的时候,遇到一个问题,

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

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

下面是我写的,可以解决第一种情况的问题,但是第二种情况需要怎么删除,没有什么思路,还请大家给点建议, 谢谢
  1. @echo on
  2. cd C:\Users\
  3. for /d %%G in ("*_v") do rd /s /q "%%~G"
复制代码

回复 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$" ” 被删除, 会影响后续用户登录

TOP

回复 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
请按任意键继续. . .

TOP

回复 2# Batcher



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

TOP

返回列表