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 ...
最新文章
- 诺奖得主克鲁格曼:比特币是庞氏骗局,但不一定很快走向崩溃
- python猜数字游戏简单-python猜数字游戏快速求解解决方案
- 解决WebClient或HttpWebRequest首次连接缓慢问题
- 目标检测一卷到底之后,终于又有人给它挖了个新坑|CVPR2021 Oral
- ITK:使用最小最大曲率流平滑RGB图像
- #1419 : 后缀数组四·重复旋律4 (重复次数最多的连续字串)
- python123添加列表元素_Python之列表
- linux安装yum的脚本,lnmp一键安装脚本yum方式快速安装
- SQL学习笔记四之MySQL数据操作
- 直击硅谷最火全球区块链峰会,40位大咖讲了啥?
- 笨方法学Python
- 处理Cookie ( from http://edu.chinaz.com )
- 勒让德多项式的正交性和归一化
- [微信小程序] 原生小程序picker组件实现时间日期的选择
- 心理学与生活-南京大学-陈昌凯-中国大学MOOC慕课-各章测试题答案
- 各种梯度算法总结 + Total Variation
- linux每日命令(3):ln命令
- Unity中制作图片字体
- 10015---SpringMVC--自定义视图
- 如何使用奥特歌词制作双语LRC字幕