Windows脚本

本文最后更新于:1 年前

Windows脚本

1. Windows C盘清理脚本

cclear.bat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
rem https://www.tangshanwei.com/n/29579.html
echo 正在清除系统垃圾文件,请稍等……
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo 一键清理系统垃圾完成!

echo. & pause

2. cmd脚本示例

test.bat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
@echo off

::需要进行备份的源文件夹
set sourceDir="D:\Program Files\Minecraft\1.18.2\.minecraft\saves\"
set outName=单人生存_1_18

set sourceDir=%sourceDir:~1%
echo %sourceDir%
set sourceDir=%sourceDir:~0,-1%
echo %sourceDir%
echo 输出: %sourceDir%%outName%%CURRENT_DATE_TIME_STRING%.zip

echo 执行完成!

echo 请选择需要备份文件夹,按3跳过
choice /C 123 /T 15 /D 3 /M "1、单人生存_1_18 2、空岛生存 3、跳过(默认)"

if errorlevel 1 set outName2=单人生存_1_18
if errorlevel 2 set outName2=空岛生存
if errorlevel 3 set outName2=单人生存_1_18

echo %outName2%

set CURRENT_DATE_STRING=%date:~0,4%%date:~5,2%%date:~8,2%
::echo CURRENT_DATE_STRING=%CURRENT_DATE_STRING%
set "TIME_STRING_FILL_ZREO=%time: =0%"
::echo TIME_STRING_FILL_ZREO=%TIME_STRING_FILL_ZREO%
set CURRENT_TIME_STRING=%TIME_STRING_FILL_ZREO:~0,2%%TIME_STRING_FILL_ZREO:~3,2%%TIME_STRING_FILL_ZREO:~6,2%
::echo CURRENT_TIME_STRING=%CURRENT_TIME_STRING%
set CURRENT_DATE_TIME_STRING=%CURRENT_DATE_STRING%%CURRENT_TIME_STRING%
::echo CURRENT_DATE_TIME_STRING=%CURRENT_DATE_TIME_STRING%

echo 输出: %sourceDir%%outName2%%CURRENT_DATE_TIME_STRING%.zip

pause

3. 备份:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
@echo off

::需要进行备份的源文件夹
set sourceDir="D:\Program Files\Minecraft\1.18.2\.minecraft\saves\"
set outName=单人生存_1_18

echo 请选择需要备份文件夹,按3跳过

set /p input=请选择一个喜欢的数字:

@REM choice /C 123 /T 15 /D 3 /M "1、单人生存_1_18 2、空岛生存 3、跳过(默认)"

@REM if errorlevel 1 set outName2=单人生存_1_18
@REM if errorlevel 2 set outName2=空岛生存
@REM if errorlevel 3 set outName2=单人生存_1_18

set outName2=单人生存_1_18
if %input%=1(
set outName2=单人生存_1_18
) else if %input%=2(
set outName2=空岛生存
) else if %input%=3(
set outName2=单人生存_1_18
)

echo %outName2%

set CURRENT_DATE_STRING=%date:~0,4%%date:~5,2%%date:~8,2%
::echo CURRENT_DATE_STRING=%CURRENT_DATE_STRING%
set "TIME_STRING_FILL_ZREO=%time: =0%"
::echo TIME_STRING_FILL_ZREO=%TIME_STRING_FILL_ZREO%
set CURRENT_TIME_STRING=%TIME_STRING_FILL_ZREO:~0,2%%TIME_STRING_FILL_ZREO:~3,2%%TIME_STRING_FILL_ZREO:~6,2%
::echo CURRENT_TIME_STRING=%CURRENT_TIME_STRING%
set CURRENT_DATE_TIME_STRING=%CURRENT_DATE_STRING%%CURRENT_TIME_STRING%
::echo CURRENT_DATE_TIME_STRING=%CURRENT_DATE_TIME_STRING%

echo 输出: %sourceDir%%outName2%%CURRENT_DATE_TIME_STRING%.zip

pause

4. minecraft存档Windows备份脚本

minecraftzip.bat # bat格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
@echo off
::需要进行备份的源文件夹
set sourceDir="D:\Program Files\Minecraft\1.18.2\.minecraft\saves\"

echo 请选择需要备份文件夹,按3跳过
choice /C 123 /T 15 /D 3 /M "1、单人生存_1_18 2、空岛生存 3、跳过(默认)"

if errorlevel 1 set outName=单人生存_1_18
if errorlevel 2 set outName=空岛生存
if errorlevel 3 set outName=单人生存_1_18

::set outName=单人生存_1_18
cd D:\Program Files\Minecraft\1.18.2\.minecraft\saves

REM 压缩文件夹A 并以当前时间命名
set name=%date:0,4%%date:5,2%%date:8,2%%time:0,2%%time:3,2%%time:6,2%

set CURRENT_DATE_STRING=%date:~0,4%%date:~5,2%%date:~8,2%
::echo CURRENT_DATE_STRING=%CURRENT_DATE_STRING%
set "TIME_STRING_FILL_ZREO=%time: =0%"
::echo TIME_STRING_FILL_ZREO=%TIME_STRING_FILL_ZREO%
set CURRENT_TIME_STRING=%TIME_STRING_FILL_ZREO:~0,2%%TIME_STRING_FILL_ZREO:~3,2%%TIME_STRING_FILL_ZREO:~6,2%
::echo CURRENT_TIME_STRING=%CURRENT_TIME_STRING%
set CURRENT_DATE_TIME_STRING=%CURRENT_DATE_STRING%%CURRENT_TIME_STRING%
::echo CURRENT_DATE_TIME_STRING=%CURRENT_DATE_TIME_STRING%

echo 开始压缩...

7z a -tzip %sourceDir%%outName%%CURRENT_DATE_TIME_STRING%.zip %sourceDir%%outName%\*

::@echo 定位到待压缩的文件夹
::cd F:\数据压缩测试\0101C
::@echo 使用7z先将1这个目录下的所有文件压缩为tar格式
::"C:\Program Files\7-Zip\7z.exe" a -ttar F:\数据压缩测试\510101C.tar 1\*
::@echo 将压缩后的tar格式再压缩为gzip格式,最终得到需要的tar.gz格式
::"C:\Program Files\7-Zip\7z.exe" a -tgzip F:\数据压缩测试\2016_1_510101C.tar.gz F:\数据压缩测试\510101C.tar
::@删除中间过程生成的文件
::del "F:\数据压缩测试\510101C.tar"

::在指定目录下删除过期的文件,参数-d后的数字表示要删除多少天以前的文件
::forfiles /p "D:\Data\数据备份\Ftp_Back" /m HanpuFtpBack* -d -7 /c "cmd /c del /f ::@path"

::start "" "%~dp0v2rayB\v2ray.exe"

set sourceDir=%sourceDir:~1%
set sourceDir=%sourceDir:~0,-1%
echo 文件压缩路径: %sourceDir%%outName%%CURRENT_DATE_TIME_STRING%.zip

echo 压缩完成!

pause

5. 7z

参考:https://www.likecs.com/show-208495.html?sc=3300.302490234375

https://blog.csdn.net/shadow_2011/article/details/120056749

7zip也是目前为止使用非常普遍的一种压缩程序,它的压缩、解压缩效率高,而且没有广告,是免费工具。它不是Windows系统自带的,所以要调用它之前得确认是否安装了7zip,如果没有安装则自行下载安装即可。7zip下载地址:https://sparanoid.com/lab/7z/

bat调用7zip压缩实例:

1
2
3
4
5
6
7
8
@echo 定位到待压缩的文件夹
cd F:\数据压缩测试\0101C
@echo 使用7z先将1这个目录下的所有文件压缩为tar格式
"C:\Program Files\7-Zip\7z.exe" a -ttar F:\数据压缩测试\510101C.tar 1\*
@echo 将压缩后的tar格式再压缩为gzip格式,最终得到需要的tar.gz格式
"C:\Program Files\7-Zip\7z.exe" a -tgzip F:\数据压缩测试\2016_1_510101C.tar.gz F:\数据压缩测试\510101C.tar
@删除中间过程生成的文件
del "F:\数据压缩测试\510101C.tar"

bat调用7zip解压实例一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
setlocal enabledelayedexpansion
echo please make sure you are admin!
echo 执行此脚本前,请确认已经安装解压缩程序7-Zip
:::::::::: 配置参数 ::::::::::
::解压程序WinRAR.exe所在目录 32位%ProgramFiles(x86)% 或64位 %ProgramFiles%
set 7ZipDir=%ProgramFiles%\7-Zip

REM 当前目录下用来测试的压缩包
set plegodemo=plegodemo.zip

:: 解压
set curdir=%~dp0
set deploydir=E:\mytest
set "plegodemodir=!plegodemo:.zip=!"
:: C:\01_MyApp\7-Zip\7z.exe x newPack.zip -oc:\Doc -aoa
start /wait "" "!7ZipDir!\7z.exe" x !curdir!!plegodemo! -o!deploydir!\!plegodemodir!\ -aoa

:: 压缩
set "name=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"
:: C:\01_MyApp\7-Zip\7z.exe a -t7z newPack.7z "F:\14_newWork\7z\testDoc\*" -r -mx=9 -m0=LZMA2 -ms=10m -mf=on -mhc=on -mmt=on
start /wait "" "!7ZipDir!\7z.exe" a -tzip !deploydir!\!plegodemodir!_%name%.zip "C:\inetpub\*" -r -mx=9

用7z来解压.tar.gz

7 zip软件可以实现文件的压缩和解压缩,如果使用7z.exe对tar.gz文件进行解压缩,需要经过两次解压,第一次解压成tar文件,再解压一次生成源文件,例如test.tar.gz解压一次生成test.tar。再次解压生成test

6. batch

http://www.dzwebs.net/837.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
http://www.dzwebs.net/837.html

Windows命令行Dos命令截取变量字符串一定长度的详细说明

@echo off
set str=123456789
echo 第一个字符为:%str:~0,1%
echo 头两个字符为:%str:~0,2%
echo 头5个字符为:%str:~0,5%
echo 去掉最后一个字符后的字符串为:%str:~0,-1%
echo 去掉最后3个字符后的字符串为:%str:~0,-3%
echo 第4个字符为:%str:~3,1%
echo 第4个及其之后的3个字符为:%str:~3,4%
echo 最后一个字符为:%str:~-1%
echo 最后一个字符为:%str:~-1,1%
echo 最后一个字符为:%str:~-1,2%
echo 倒数第4个字符为:%str:~-4,1%
echo 倒数第4个及其之后的字符为:%str:~-4%
echo 倒数第4个及其之后的1个字符为:%str:~-4,2%
echo 倒数第4个及其之后的2个字符为:%str:~-4,3%
pause
为了说明这个问题,我在这里把批处理取字符,做下进一步的解释,希望对新手有所启发
如下:
echo %var:~n,k%
我们在这里对每个参数做个说明:"%var",即我们要从中要截取字符的字符串." ~ "取字
符标志符(我是这么理解的),"n" 我们将其理解为指针,"k"我们将其理解为偏移地址.(注
:指针和偏移地址都是从零开始数的)

我们还是用namejm版主的例子做下说明:
@echo off
set str=123456789
rem 定义一个str字符串为123456789
echo 第一个字符为:%str:~0,1%
rem 指针为0,偏移地址为1,即从第0位开始,1
echo 头两个字符为:%str:~0,2%
rem 指针为0,偏移地址为2,即从第0位开始,2
echo 头5个字符为:%str:~0,5%
rem 指针为0,偏移地址为5,即从第0位开始,5
echo 去掉最后一个字符后的字符串为:%str:~0,-1%
rem 当"k"为负值时,我们可以这样理解:从指针开始处开始取其后面所有字符,然后减去
后面"abs(k)位"..所以这个句字我们可以做如下解释:从第0位开始取其全部字符
为:123456789然后从后面减去abs(k)位,所以最后结果为:12345678

echo 去掉最后3个字符后的字符串为:%str:~0,-3%
rem 该句解释同上↑
echo 最后一个字符为:%str:~-1%
rem 参数"n,""k"都可以为缺省,缺省"n,"时可以理解为:abs(k)位开始取其全部
echo 倒数第4个及其之后的字符为:%str:~-4%
rem 解释同上↑
echo 最后一个字符为:%str:~-1,1%
rem n为负值时,表示从后面开始截取字符,k(此时n应从1开始数)
echo 最后一个字符为:%str:~-1,2%
rem 解释同上↑
echo 倒数第4个字符为:%str:~-4,1%
rem 解释同上↑
echo 倒数第4个及其之后的1个字符为:%str:~-4,2%
rem 解释同上↑
echo 倒数第4个及其之后的2个字符为:%str:~-4,3%
rem 解释同上↑

pause
1
2
:: 示例: 压缩文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
:: 示例: 练习截取
@echo off

::需要进行备份的源文件夹
set sourceDir="D:\Program Files\Minecraft\1.18.2\.minecraft\saves\"
set outName=单人生存_1_18
set CURRENT_DATE_STRING=%date:~0,4%%date:~5,2%%date:~8,2%
::echo CURRENT_DATE_STRING=%CURRENT_DATE_STRING%
set "TIME_STRING_FILL_ZREO=%time: =0%"
::echo TIME_STRING_FILL_ZREO=%TIME_STRING_FILL_ZREO%
set CURRENT_TIME_STRING=%TIME_STRING_FILL_ZREO:~0,2%%TIME_STRING_FILL_ZREO:~3,2%%TIME_STRING_FILL_ZREO:~6,2%
::echo CURRENT_TIME_STRING=%CURRENT_TIME_STRING%
set CURRENT_DATE_TIME_STRING=%CURRENT_DATE_STRING%%CURRENT_TIME_STRING%
::echo CURRENT_DATE_TIME_STRING=%CURRENT_DATE_TIME_STRING%
echo 输出: %sourceDir%%outName%%CURRENT_DATE_TIME_STRING%.zip

set sourceDir=%sourceDir:~1%
echo %sourceDir%
set sourceDir=%sourceDir:~0,-1%
echo %sourceDir%
echo 输出: %sourceDir%%outName%%CURRENT_DATE_TIME_STRING%.zip

echo 执行完成!

pause

Windows脚本
https://chris-z-su.github.io/2022/10/15/技术/Windows脚本/
作者
Chris
发布于
2022年10月15日
许可协议