windows下批处理文件的编写
学习地址
在学习批处理命令的过程中搜索到网上的一个《批处理命令一日一教学》系列,讲得非常浅显易懂,特此mark
http://www.bathome.net/thread-2576-1-1.html
创建批处理文件
常用命令
copy文件复制详解 如果要复制的路径带有空格、&等特殊符号的时候,要使用引号把这些特殊符号括起来
有时候windows的批处理能带来很方便的操作,批处理也有变量声明,下面一段就是说的如何使用批处理中的变量。
set 功能一览
[设置变量]
格式:set 变量名=变量值
详细:被设定的变量以%变量名%引用
[取消变量]
格式:set 变量名=
详细:取消后的变量若被引用%变量名%将为空
[展示变量]
格式:set 变量名
详细:展示以变量名开头的所有变量的值
[列出所有可用的变量]
格式:set
[计算器]
格式:set /a 表达式
示例:set /a 1+2*3 输出 7
[设置变量为表达式计算后的值]
set a=1+2
echo %a% ==>输出1+2
------------------------------------
set /a a=1+2
echo %a% ==>输出3
[设置变量为用户输入的值]
set /p a=输入一个值 ==>输出 输入一个值
echo %a% ==>显示用户输入的值
预定义的变量
下面是些已经被底层定义好可以直接使用的变量:不会出现在 SET 显示的变量列表中
%CD% - 扩展到当前目录字符串。
%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。
%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。
%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。
%ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。
%CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号。
%CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。
%0 bat的完整路径名如"C:\Windows\system32\xxx.bat"
%1 bat参数1依次类推%2参数2...
%path% - 当前的环境变量。以分号隔开的路径列表,路径可包含空格,可以以'\'结尾, 可以以双引号包围之。
扩展变量
@ 与%i相关的变量(bat参数或者for循环的%i)
假设文件为C:\Documents and Settings\jinsun\桌面\ParseSinglePkgs.bat
%0 C:\Documents and Settings\jinsun\桌面\ParseSinglePkgs.bat
%~dp0 C:\Documents and Settings\jinsun\桌面\
%cd% C:\Documents and Settings\jinsun\桌面
%~nx0 ParseSinglePkgs.bat
%~n0 ParseSinglePkgs
%~x0 .bat
@ 与%VAR%相关的变量
%VAR:str1=str2% 会将VAR中的str1替换为str2(str2如果为空则可以达到删除的效果,str1前可以加*,变量%ABC:*B=%是C)
%VAR:~0,-2% 会提取VAR 变量的所有字符,除了最后两个
%VAR:~2% 会提取VAR 变量的除前两个的所有字符
%VAR:~-2% 会提取VAR 变量的最后两个
%VAR:~2,5% 提取从第2个字符开始的5个字符
这篇文章看完了就懂了“%date:~0,4%%date:~5,2%%date:~8,2%.sql”是什么意思了。
sample:
要利用计划任务和mysqldump实现自动备份mysql,
于是写了下面这个bat文件,
@echo off
F:\wwwroot\APMServ5.2.6\MySQL5.1\bin\mysqldump.exe -u root -p 111111 hsjk120>F:\wwwroot\APMServ5.2.6\MySQL5.1\bin\%date:~0,4%%date:~5,2%%date:~8,2%.sql
但是执行的时候总是提示Enter password: 这样就失去自动备份的意义了。
后来发现-p 参数比较特殊,正确语法是 -ppassword,即-p和密码中间不能有空格,于是就修改成
@echo off
F:\wwwroot\APMServ5.2.6\MySQL5.1\bin\mysqldump.exe -u root -p111111 hsjk120>F:\wwwroot\APMServ5.2.6\MySQL5.1\bin\%date:~0,4%%date:~5,2%%date:~8,2%.sql
这样就直接备份不再提醒输入密码了。
下面这段是批处理,生成以当天日期为文件名的sql文件
%date:~0,4%%date:~5,2%%date:~8,2%.sql
实测后发现: %date:~6,4%%date:~0,2%%date:~3,2%.sql 能够输出正确的以当天为文件名的sql文件,这个可能与时间格式有关,
02/24/2014 Mon 这是调用命令echo %date%显示的结果。
set testPSNRPath=C:\Users\t_dingfeny\Desktop
cd %testPSNRPath%default
cd %testPSNRPath%default
@echo off
setlocal enabledelayedexpansion
set k=3
set k=4
echo !k!
pause
使用setlocal enabledelayedexpansion之后,变量被延迟赋值,相当于动态赋值,显示的是最新的赋值结果也就是4,而不加的话不会延迟赋值,也就是静态赋值,相当于只赋值最早的一个值。
windows下批处理文件的编写相关推荐
- 【开发工具】之windows下gnu makefile编写
序 本文旨在示例怎么编写windows下的makefile, 依赖于"GnuWin32",可自行网上下载. 安装方法一: 下载网址:http://gnuwin32.sourcef ...
- windows下使用vscode编写运行以及调试C/C++
不要转载,唯一出处:tangming博客园 最后更新于2019年8月12日: 本文原本为我在一年多前在参加算法竞赛期间于博客园发布的一篇整理vscode编写c/c++全部使用心得的文章,经过多次的修改 ...
- Windows下批处理文件(.bat)的使用
批处理(Batch),就是进行批量的处理,英文译文BATCH,批处理文件后缀BAT就取的前三个字母,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中.批处理文件是扩展名为.bat或 ...
- windows下批处理文件bat怎么写?
如何写bat文件,和sh文件有什么区别 项目需要,要求把Linux系统下包含有ROS功能的QT程序移植到Windows系统下,最初要做的是在Windows系统下安装ROS系统.如何在Windows系统 ...
- 如何编写linux批处理文件,Linux和Windows下的批处理文件编写
一.Linux下批处理文件编写 1.先建一个文档,如名为test,修改其文件权限使其为可执行文件. sudo chmod +x test 2.打开test文档,编辑. cd 绝对路径 for ...
- windows下编写dll
dll的优点 简单的说,dll有以下几个优点: 1) 节省内存.同一个软件模块,若是以源代码的形式重用,则会被编译到不同的可执行程序中,同时运行这些exe时这些模块的二进制码会被重复加载到内存中.如果 ...
- Windows下VScode编写ege图形库
一.前言 具体安装步骤请参考下述链接,本文只是记录博主的安装过程Windows下用VScode编写ege图形库 二.安装步骤 1.下载并安装MinGw ege库 2.测试ege库 #include & ...
- 你想要的~最全的Windows下编写swift程序
Windows下编写swift程序 一.安装VScode 1.官网下载最新版 VScode下载地址 2.将vscode修改为中文环境 1)使用快捷键[Ctrl+Shift+P](!或者F1)弹出查找命 ...
- 64位虚拟机下asm()语法_一步步学写Windows下的Shellcode
如何在WIndows下编写一个shellcode?为什么会问这个问题,前段时间在做win下的Exploit,但是都是使用大佬写的shellcode,无法实现个人的一些需求.而网络上编写shellcod ...
最新文章
- C/C++各种数据类型转换汇总
- Windows 8.1 重复数据删除
- Account mobile phone in CRM and C4C
- 数据库 数据库SQL语句一
- linux xchgl 汇编含义,替换x86 xchgl 汇编指令
- geoTools学习笔记001---(简介)
- 3-34Pytorch与nn库
- app嵌入jsp页面的项目工作量_好程序员Java学习路线分享jsp为什么用的不多了
- usaco2.11Ordered Fractions
- 三分钟带你了解移动通讯办公软件
- python画图小实例_Python画高斯分布图形实例代码
- I Sold Out for the Cash - 2022/8/10
- 联想计算机的控制面板在哪,教程知识:联想win10控制面板在哪里打开
- PHP+AJAX开发幸运大转盘抽奖
- 微信小程序(5)——如何制作好看的表格
- xiaomi5小米5手机刷原生安卓实测稳定可靠方法,附下载全套刷机软件卡刷rom
- c语言第九章课后作业答案,c语言第九章习题带答案
- 目标检测算法DSSD的原理详解
- 数显之家快讯:【SHIO世硕心语】2021年,给实体经济企业家的二十条建议!
- C语言基础 初识c语言
热门文章
- 各坐标系转换,百度、高德、wgs84、cgcs2000坐标系互转
- Python实现经纬度转换
- c语言中用递推法解决渔夫问题,递归、递推 - IT小冰的个人空间 - OSCHINA - 中文开源技术交流社区...
- AI芯片:寒武纪Cambricon-X结构分析
- super-resolution
- CentOS无人值守安装
- 8.HTML标签-表格标签table
- 【转载】AE表达式中英文对照
- 最新YGbook小说网自适应源码 自动采集笔趣阁 附详细图文安装教程
- 使用dreamweaver制作采用DIV+CSS进行布局——美食甜品店铺加盟企业HTML静态网页 ——学生美食网页设计作品静态HTML网页模板源码