标题: [文件操作] 请教BAT脚本文件批量删除的问题 [打印本页]
作者: xuxianking 时间: 2021-3-28 21:50 标题: 请教BAT脚本文件批量删除的问题
各位好, 在写一个批处理的时候,遇到一个问题,
需要达到的效果是:删除C盘users目录下超过三十天为使用的文件夹(特定用户的文件夹),但不删除当前运行这个bat脚本用户的文件夹,因为脚本是在域控环境中运行的,所以现在
有两个情况1.一个域控中的电脑用户文件都有一个特定的标识都带有 “_v” ,2.另外一个域控中的电脑没有规律,一般以姓名全称来命名。
下面是我写的,可以解决第一种情况的问题,但是第二种情况需要怎么删除,没有什么思路,还请大家给点建议, 谢谢- @echo on
- cd C:\Users\
- for /d %%G in ("*_v") do rd /s /q "%%~G"
复制代码
作者: Batcher 时间: 2021-3-29 10:29
回复 1# xuxianking - @echo off
- if exist "%SystemDrive%\Users" (
- pushd "%SystemDrive%\Users"
- ) else (
- goto :eof
- )
- 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"
- )
- popd
- pause
复制代码
作者: xuxianking 时间: 2021-3-29 11:04
回复 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$" ” 被删除, 会影响后续用户登录
作者: Batcher 时间: 2021-3-29 11:20
回复 3# xuxianking
是的,就是排除掉那几个文件夹。
作者: xuxianking 时间: 2021-4-15 12:47
回复 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
请按任意键继续. . .
作者: Batcher 时间: 2021-4-15 13:46
回复 5# xuxianking
2楼代码第8行的echo删掉
作者: xuxianking 时间: 2021-4-15 13:52
回复 2# Batcher
找到原因了 删除掉“echo rd /s /q”中的“echo” 就可以了,如果排除当前用户的文件夹?如果我要删30天之前的用户,需要添加什么命令?
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |