bat搜集

1. 删除文件夹下指定名称的所有子文件夹

@echo off
 
::设置要保留的文件夹名,多个文件夹之间用英文逗号隔开,如果包含空格或英文逗号,英文&以及其它一些特殊字符的名字,请把该完整名字用英文双引号括起来
set deleteName=bin,obj
 
::设置文件夹处理目录
set DirPath=D:
 
(for %%a in (%deleteName%) do echo %%~a)>"%tmp%\delete.List"

for /f "delims=" %%a in ('dir /ad/b/s "%DirPath%"') do (
    findstr /bei "%%~nxa" "%tmp%\delete.List" >nul 2>nul && rd /s /q "%%~a" || echo %%a跳过
)
pause

2. 删除指定日期前的文档

@echo off
::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例需要Win2003/Vista/Win7系统自带的forfiles命令的支持

rem 指定待删除文件的存放路径
set SrcDir=E:\test

rem 指定天数
set DaysAgo=7

forfiles /p %SrcDir% /m *.* /d -%DaysAgo% /c "cmd /c del /f /q /a @path"

3. 文件夹打包成rar文件

@echo off

rem 指定rar程序目录 + 备份到哪里 + 要打包的文件夹
"C:\Program Files (x86)\WinRAR\WinRAR.exe" a -ag -ibck "E:\backto\pre.rar" "E:\backfrom"

4. 自动拷贝文件至网络文件件

@echo off

rem 设置要备份的文件夹...
set bakfrom=E:\test

rem 设置备份文件存放文件夹...
set bakto=E:\test\backTo

rem 设置文件名前缀
set prefix=xxx

rem 获取昨天
for /f "delims=" %%a in ( 'PowerShell  "&{Get-Date (Get-Date).AddDays(-1) -uformat "%%Y_%%m_%%d"}"' ) do (
    if not defined yestoday set yestoday=%%a
)
set prefix=%prefix%%yestoday%


echo 同步中。。。

for /f "delims=" %%i in ('dir /b "%bakfrom%\%prefix%*.*"') do (
   dir /b "%bakto%" >nul |find /I "%%i" >nul || copy "%bakfrom%\%%i" "%bakto%\%%i" >nul
)

echo 备份拷贝完毕!

 5.拷贝文件夹下所有文件到另一个文件夹

xcopy D:\workproject\test2\1.0\*.* D:\workproject\test2\测试1.0\ /s /e

 6.共享文件夹做异地备份。

思路:
1. 文件复制到临时文件夹中
2. rar打压缩包
3. 拷贝rar文件到备份服务器
4. 删除rar文件和临时文件夹

@echo off

rem 设置要备份的文件夹...
set bakfrom=F:\22222\bak

rem 设置备份文件存放文件夹...
set bakto=F:\22222\OffsiteBackup

rem 设置文件名前缀
set prefix=test_

rem 获取昨天
for /f "delims=" %%a in ( 'PowerShell  "&{Get-Date (Get-Date).AddDays(-1) -uformat "%%Y_%%m_%%d"}"' ) do (
    if not defined yestoday set yestoday=%%a
)
set prefix=%prefix%%yestoday%

rem 设置临时存放文件夹...
set temp1=F:\22222\bak\temp\
set temp=%temp1%%yestoday%

rem 设置rar的应用程序目录...
set rarApp=C:\Program Files\WinRAR


echo step1:拷贝至临时文件夹。。。

if exist %temp% rd /s /q %temp%
md %temp%

for /f "delims=" %%i in ('dir /b "%bakfrom%\%prefix%*.*"') do (
   dir /b "%temp%" >nul |find /I "%%i" >nul || copy "%bakfrom%\%%i" "%temp%\%%i" >nul
)

echo step1执行完毕!


echo step2:rar打压缩包。。。

F:
cd %temp1%
rem 指定rar程序目录 + 备份到哪里 + 要打包的文件夹
"%rarApp%\WinRAR.exe" a -ag "%temp%\%yestoday%.rar" "%yestoday%"

echo step2执行完毕!


echo step3:拷贝rar文件到备份服务器。。。

for /f "delims=" %%i in ('dir /b "%temp%\%yestoday%*.rar"') do (
   dir /b "%bakto%" >nul |find /I "%%i" >nul || copy "%temp%\%%i" "%bakto%\%%i" >nul
)

echo step3执行完毕!


echo step4:删除临时文件夹。。。

if exist %temp% rd /s /q %temp%

echo step4执行完毕!

pause
View Code

 

posted @ 2019-01-14 10:14  脸谱匠  阅读(283)  评论(0编辑  收藏  举报