一、管理员运行脚本
::在你的脚本前加上以下两句命令
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
::下面是你的程序
tscancode.exe --enable=warning E:\Gbmp\gdc-sdk\src\Common 2>tscancode.txt
二、重定向符号的使用
重定向符号有两个"<" 和 ">"
nul 是空设备的意思
< 的使用
在命令调用其它bat文件或者exe文件时,加上 < nul可以忽略调用文件中的pause
如:call test01.bat <nul
> 的使用
在命令后面添加上 >nul 时,可以忽略掉信息的输出
在命令后面添加上 2>nul 时,不显示错误提示
如:call test01.bat >nul
二、获取路径
1、获取当前路径 %cd%,当前运行的路径,可以改变
2、%~dp %0是批处理文件本身的路径,%~dp进行扩展, d向前扩展到驱动器,p往后扩展到路径。
例如,你的bat文件在e:\mybat\test.bat,则%0就是"e:\mybat\test.bat", %~dp0是e:\mybat\。
三、for语句的常用语法
1、读取文本 for /f
三种形式
如果是文件,则无需包裹;如果是命令语句,则用单引号包裹;如果是字符串,则使用双引号括起来。
1、for /f %%i in (文件名) do (……)
2、for /f %%i in ('命令语句') do (……)
3、for /f %%i in ("字符串") do (……)
for /f 语句是以行为单位处理文本文件的。
@echo off
::读取test.txt 并打印到屏幕
for /f %%i in (test.txt) do echo %%i&pause
pause
@echo off
::按行读取d:\test.txt文件中的内容,输出每行的第一个数据,默认每行内以空格和tab为分隔符
for /f %%i in (d:\test.txt) do echo %%i
::delims参数指定分隔符为/
for /f "delims=/" %%i in (d:\test.txt) do echo %%i
::tokens参数指定读取第二列,tokens=*读取所有
for /f "tokens=2 delims=/" %%i in (d:\test.txt) do echo %%i
::skip参数直接跳过前两行,从第三行开始
::tokens=2,*读取第二个和之后剩余所有,%%i为第一列值,%%j为之后剩余所有
::tokens=1,4读取第一个和第四个,%%i为第一列值,%%j为第四列值
::('net start')表示将单引号内语句的执行结果作为集合
for /f "skip=2 tokens=1,* delims=/" %%i in ('net start') do echo %%i %%j
::("asc/2ap/as5")表示对字符串进行处理
for /f "tokens=2,* delims=/" %%i in ("asc/2ap/as5") do echo %%i--%%j
::eol参数直接忽略以#开头的行
for /f "eol=# tokens=*" %%i in (d:\test.txt) do echo %%i
2、 for /r
for /r 的作用是“递归”,我们换一个通俗一点的,叫“遍历文件夹”。
::列举“目录”及其之下的所有子目录
@echo off
for /r d:\test %%i in (.) do echo %%i
pause
3、 计数循环:for /l
for /l %%i in (1,2,10) do echo %%i
以上的代码中,初始值是1,步长为2,终止值为10,
四、使用脚本编译c++程序
1、使用脚本启动vs
start .\Test_use_bat_compile\Test_use_bat_compile.sln
2、使用脚本编译
devenv是VisualStudio的可执行程序,一般安装在“C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE”下。
这个路径下有两个 devenv 文件,devenv.com 和 devenv.exe。
其中devenv.com是命令行程序,也就是用命令行运行 VisualStudio,编译结果会直接输出到命令行窗口上。devenv.exe是GUI的程序。
格式:devenv 解决方案文件.sln /build [ 解决方案配置 ] [ /project 项目名称或文件 [ /projectconfig 名称 ] ]
如下例子:清除解决方案
set DEVENV_COMPILER="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.com"
cd ../build
%DEVENV_COMPILER% GDC.sln /Clean "Release|X64"
cd ../bin
/Build 使用指定的解决方案配置生成解决方案或项目。
/Rebuild 先清理,然后使用指定配置生成 解决方案或项目。
/Run 编译并运行指定的解决方案。
3、使用cmake编译
cmake官网文档:cmake官网
(1)生成解决方案 cmake G"Visual Studio 16 2019" -B .\build -S .\CMakeProject1
G为指定编译平台 B为生成目录 S为源文件路径
(2)是生成可执行文件,也可使用上面的denenv工具
cmake --build .\build --config "release"
五、关闭、开启网络
netsh interface set interface name=\"以太网\" admin=\"disabled\"
netsh interface set interface name=\"以太网\" admin=\"enabled\"