简单一步双击鼠标,把各个文件夹需要备份的文档都复制一份到共享文件夹。与此同时并把需要压缩的都压缩了,需要以日期命名的都命名了。
接下来我就开始介绍一下,要达到这个效果,我需要使用到的批处理命令有哪些:
C:\>cd C:\Users\Administrator
C:\Users\Administrator>
C:\Users\Administrator>md transfer
C:\Users\Administrator>cd transfer
C:\Users\Administrator\transfer>
删除文件/文件夹:
说到删除文件使用del命令来达到,举个例子说一下使用方法如下:
del “path\to\file”
C:\>cd C:\Users\Administrator\transfer
C:\Users\Administrator\transfer>del *.7z
但如果要同时删除文件夹的话情况相对有点复杂,需要编辑更复杂的多个命令来达到。可以参考这位歪果仁盆友的帖子:How to delete all files and folders in a folder by cmd call
我们把这个节选出来的bat命令复制下来:按照他原来的命名为mydel.bat另外保存成一个bat文件。
@echo off
setlocal enableextensions
if "%~1"=="" (
echo Usage: %0 path
exit /b 1
)
:: check whether it is folder or file
set ISDIR=0
set ATTR=%~a1
set DIRATTR=%ATTR:~0,1%
if /i "%DIRATTR%"=="d" set ISDIR=1
:: Delete folder or file
if %ISDIR%==1 (rmdir /s /q "%~1") else (del "%~1")
exit /b %ERRORLEVEL%
当我们需要使用mydel.bat来清空某个路径下的所有文件以及文件夹的时候,我们可以这么使用:
mydel.bat “path\to\folder with spaces”
mydel.bat “path\to\file_or_folder”
目标文件夹路径需要有双引号引起来,不然会出现查无此路径的错误。
C:\>call mydel.bat "C:\Users\Administrator\transfer"
这样就可以把transfer里面的所有子文件夹以及所有存在的文件都清掉了,transfer文件夹里将会干净如新建。
C:\>copy scan.txt "C:\Users\Administrator\transfer"
C:\>date
当前日期: 2019/05/25 周六
输入新日期: (年月日)
- 可以看出输出结果是2019/05/25 周六,如果我们要获取0525这样的字符串,我们就可以首先要开始从左到右数,“/”也算一个字符。因此我们使用%date:5,2%来告诉系统,我们要截取的是从左数起第5个字符后截取两个字符,这样就成功获得了05。我们要继续截取25的话,我们只需要再次添加%date:8,2%就可以成功截取25了。
- 我们可以直接引用str变量来命名文件夹,此处用到的也是两个%包着变量名。如下例:md %str% 。
- 下面的代码可以自动在指定路径下生成一个由当天日期命名的文件夹。
C:\>set str=%date:~5,2%%date:~8,2%
C:\>cd C:\Users\Administrator\transfer
C:\Users\Administrator\transfer>md %str%
C:\Users\Administrator\transfer>dir
驱动器 C 中的卷没有标签。
卷的序列号是 xxxx-xxxx
C:\Users\Administrator 的目录
2019/05/25 18:43 .
2019/05/25 18:43 ..
2019/05/25 18:43 0525
C:\Program Files>cd 7-Zip
C:\Program Files\7-Zip>7z a -t7z "C:\Users\Administrator\%str%.7z" "C:\Users\Administrator\%str%"
7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Scanning the drive:
1 folder, 0 files, 0 bytes
Creating archive: C:\Users\Administrator\0525.7z
Add new data to archive: 1 folder, 0 files, 0 bytes
Files read from disk: 0
Archive size: 82 bytes (1 KiB)
Everything is Ok