常用批处理

本文最后更新于 2025-11-16 17:24:02

删除特定类型文件命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@echo off

::设置标题和时间
title 删除.orig文件 当前时间:%date% %time%

::设置颜色
color B0

::设置窗口大小
mode con cols=120 lines=30

set count=0
for /f %%a in ('dir *.orig /b /s') do (
set /a count+=1
echo %%a
)

if %count%==0 goto exit

set /p choose=是否删除所有*.orig文件,Y or N ?
if /i "%choose%"=="Y" del /s /q *.orig

:exit
设置环境变量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@echo off

set KEY_NAME=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

set VALUE_NAME=opencv_include
set batpath=%~dp0include
for /f "tokens=1" %%A in ('reg query "%KEY_NAME%" /v "%VALUE_NAME%"') do (
reg delete "%KEY_NAME%" /v "%VALUE_NAME%" /f
goto A
)
:A
reg add "%KEY_NAME%" /v "%VALUE_NAME%" /d "%batpath%" /f


set VALUE_NAME=opencv_lib
set batpath=%~dp0x64\vc15\lib
for /f "tokens=1" %%A in ('reg query "%KEY_NAME%" /v "%VALUE_NAME%"') do (
reg delete "%KEY_NAME%" /v "%VALUE_NAME%" /f
goto B
)
:B
reg add "%KEY_NAME%" /v "%VALUE_NAME%" /d "%batpath%" /f

pause
Visual Studio项目编译后自动复制文件
1
xcopy $(SolutionDir)bin\$(Platform)\$(Configuration)\$(ProjectName).dll $(SolutionDir)Test\bin\x64\Debug\$(ProjectName).dll /Y
c++ 链接 opencv,自动适应版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#define USE_OPENCV

#ifdef USE_OPENCV

#ifndef CV
#define CV

#include <opencv2/opencv.hpp>

#define CV_VERSION_ID CVAUX_STR(CV_MAJOR_VERSION) CVAUX_STR(CV_MINOR_VERSION) CVAUX_STR(CV_SUBMINOR_VERSION)

#ifdef _DEBUG
#include <opencv2/core/utils/logger.hpp>
#define cvLIB(name) "opencv_" name CV_VERSION_ID "d"
#else
#define cvLIB(name) "opencv_" name CV_VERSION_ID
#endif

#pragma comment(lib, cvLIB("world"))

#endif // !CV


#endif // USE_OPENCV
更新git 提交名称
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
git filter-branch --env-filter ' 
OLD_EMAIL="xxx@qq.com"
CORRECT_NAME="xxx"
CORRECT_EMAIL="xxx@qq.com"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
Visual Studio C++项目通过git创建版本信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo on

set revfile="%~dp0version.h"

for /f "delims=+ " %%a in ('git rev-list HEAD --count') do @set revnum=%%a
for /f "delims=+ " %%a in ('git rev-parse --short HEAD') do @set revset=%%a
for /f "delims=+ " %%a in ('git rev-parse HEAD') do @set HEAD=%%a

echo #define Major_Version %date:~0,4% >> %revfile%
echo #define Minor_Version %date:~5,2% >> %revfile%
echo #define Revsion_Version %date:~8,2% >> %revfile%
echo #define RevNum_Version %revnum% >> %revfile%
echo #define Git_Info "%HEAD%" >> %revfile%
echo #define Product_Version "%date:~0,4%.%date:~5,2%.%date:~8,2%.%revnum%" >> %revfile%
echo #define File_Description "%revset% %date:~0,4%.%date:~5,2%.%date:~8,2% / %time%" >> %revfile%
Visual Studio C#项目通过git创建版本信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo on

::---------------------------------------------------------------------------------------------------
set revfile="$(ProjectDir)Properties\AssemblyGitInfo.cs"

for /f "delims=+ " %%a in ('git rev-list HEAD --count') do @set revnum=%%a
for /f "delims=+ " %%a in ('git rev-parse --short HEAD') do @set shortHEAD=%%a
for /f "delims=+ " %%a in ('git rev-parse HEAD') do @set HEAD=%%a
::---------------------------------------------------------------------------------------------------
echo using System.Reflection; > %revfile%

echo [assembly: AssemblyTitle("%shortHEAD% %date:~0,4%.%date:~5,2%.%date:~8,2% / %time%")] >> %revfile%
echo [assembly: AssemblyVersion("%date:~0,4%.%date:~5,2%.%date:~8,2%.%revnum%")] >> %revfile%
echo [assembly: AssemblyDescription("%HEAD%")] >> %revfile%
echo [assembly: AssemblyCopyright("Copyright @ 2020-%date:~0,4% xxxxxx")] >> %revfile%

echo ---- Building ----
自动解压
1
2
3
4
5
6
7
8
9
10
11
@echo off

::7z的安装位置
set "rar=C:\Program Files\7-Zip\7z.exe"

::7z为目录下压缩包的扩展名
for /r %%i in (*.rar) do "%rar%" x -ad -y "%%i"

::解压带密码 密码123456
::for /r %%i in (*.rar) do "%rar%" x -p123456 -ad -y "%%i" 解压带密码 密码123456
pause
自动压缩
1
2
3
4
5
6
7
8
9
@echo off

::7z的安装位置
set "rar=C:\Program Files\7-Zip\7z.exe"

::7z为目录下压缩包的扩展名
for /f "delims=" %%i in ('dir /s /ad /b "."') do ( "%rar%" a "%%i.7z" "%%i")

pause

常用批处理
https://njit-77.github.io/2022/01/13/常用批处理/
作者
njit-77
发布于
2022年1月13日
许可协议