自信,努力,坚持

【转载】bat的变量与命令set的用法

上一篇 / 下一篇  2011-03-14 11:22:36 / 个人分类:bat

假定你原来的文本是1.txt,以下代码将文本内所有的你替换掉:
(之前调试用的几个命令忘了修改),修改后支持空行:2345

bat的变量与命令set的用法 Shell 2009-07-29 09:37:40 阅读769 评论0 字号:大中小
 
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不能用在复合语句里面比如if 1==1 set a=2或者for %%i in (a) do set a=2


预定义的变量

下面是些已经被底层定义好可以直接使用的变量:不会出现在 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个字符

 

转自:http://blog.163.com/yj_yuan/blog/static/1108427200962993740475 

 

 

@echo off&setlocal EnableDelayedExpansion
set /p string="请输入要替换成的字符:"
if exist 2.bat del 2.bat
for /f "tokens=*" %%i in ('findstr /n .* send1.bat') do (
set var=%%i
set var=!var:你=%string%!
if "!var:~2!"=="" (
echo.>>2.txt
) else echo !var:~2!>>2.txt
)
echo 替换完成!&pause>nul 2>nul

 

转自: 互联网


TAG:

 

评分:0

我来说两句

Open Toolbar