`
zzc1684
  • 浏览: 1195257 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

DOS中字符串的处理

阅读更多

一、基本知识 

在DOS中,对字符串的处理其最简单是就字符串的连接:

 

 

set out_dir=.\out

set out_file_name=Appstore

set version=001

set out_file_name=%out_file_name%_%version%

echo %out_file_name%

最后变量out_file_name的值就是Appstore_001

在DOS中,对字符串的负责处理(替换和截取)其实是通过操作环境变量的字符串值来进行。

 

二、%PATH:str1=str2% 

这个是替换变量值的内容  

实例1

@echo off 

set a= bbs.verybat.cn 

echo 替换前的值: "%a%" 

set var=%a: =%

echo 替换后的值: "%var%"

pause

对比一下,我们发现他把变量%a%的空格给替换掉了,从这个例子,我们就可以发现 

%PATH:str1=str2%这个操作就是把变量%PATH%的里的str1全部用str2替换 

比如我们把上面的例子改成这样 

实例2

@echo off 

set a=bbs.verybat.cn 

echo 替换前的值: "%a%" 

set var=%a:.=伤脑筋

echo 替换后的值: "%var%" 

pause 

解释set var=%a:.=伤脑筋

set命令 var变量名 a是要进行字符替换的变量的值,"."为要替换的值

"伤脑筋"为替换后的值

执行后就会把变量%a%里面的"."全部替换为"伤脑筋"    

三、%PATH:~10,5%

取变量PATH从第10位开始,5个字符的值z做为新值。

实例3

@echo off 

set a=0123456789

set var=%a:~1,2%

echo %var%

set var=%a:~3,5% 

echo %var%    

四、%PATH:~-10% 

取变量PATH倒数10字符的值做为新值。

实例4

@echo off 

set a=0123456789

set var=%a:~-5%

echo %var% 

pause

结果:56780

五、%PATH:~0,-2% 

取变量PATH0字符和倒数第2个的所值做为新值。

实例5

@echo off 

set a=0123456789

set var=%a:~0,-2%

echo %var% 

pause

结果:01234567

六、综合应用
实例6
@echo off 
@title 字符串的编辑测试(下面描述用的箭头→ ← 分别表示向右、向左的意思) 
set aa=1234567890 
echo 说明:下面复合变量中,逗号前的数字表示指针偏移量,逗号后的数字表示提取的字符长度 
echo %aa:~1,5% //指针向右→偏移1位,然后从指针处开始向右→提取5个字符. 
echo %aa:~0,-3% //指针不偏移,→提取所有字符,并除去最后3个字符. 
echo %aa:~5% //单个数字,不指定长度值.表示指针→偏移5个字符,然后,→提取所有字符. 
echo %aa:~-5% //单个负值,特例,表示指针反方向偏移,从最右端起,←偏移5位,然后从指针处开始→提取所有字符.也可以简单理解为提取字符串末尾5个字符. 
 
echo 指针反方向偏移的情况.既是从字符串最右端起自右向左偏移.← 
 
echo %aa:~-2,1% // 偏移量取负值,表示指针从最右端起,向左←偏移2位,然后从指针处开始向右→提取1个字符,生成新的变量值.注意字符串末尾的空格,因为空格也将作为"透 明字符"提取到变量中去,切记要去掉变量末尾的空格.ctrl+A即可快速方便的检查该变量字符串末端是否含有空格. 
echo %aa:~-4,3% //最右端起,指针←偏移4位,然后→提取3个字符. 
echo %aa:~-4,-2% //从最右端起,指针←偏移4位,然后从指针处开始,→提取所有字符,并去除最后2个字符. 
实例7
echo %date:~0,10% //提取年月日信息 
echo %date:~-3% //提取星期几信息 
echo %time:~0,5% //提取时间中的时和分 
echo %time:~0,-3% //提取时和分和秒信息 
小结:
1、偏移量为正值时,表示指针向右移动;为负值时,表示指针从字符串最右端起向左移动. 
2、如果长度值为正,表示向右提取若干个字符;如果为负,表示向右提取所有字符,并去除若干个字符."若干个=长度值的绝对值。"提取字符的方向总是自左向右进行的. 
3、如果为单个数字,那么这个数字表示的是偏移量,长度值取默认值, 既是字符串的"余数",也就是从指针处开始,向右方向的所有字符.如果这个数字是负数,可以简单的理解为:提取字符串末尾的若干个字符.(正确的解释应该 是:表示指针反方向偏移,从最右端起,←偏移若干位,然后从指针处开始→提取所有字符) 
备注:%date%和%time%是系统内置的日期变量和时间变量。
实例8
set d=%Date:~0,4%%Date:~5,2%%Date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2% 
%Date:~0,4%表示年,以此类推 显示的格式为:20120515105610 
 
结束!
分享到:
评论

相关推荐

    一个字符串处理库

    包括字符串比较、字符大小写转换、OEM(Dos)和ANSI(Windows)互换、查找、替换、删除子串、删除字符、格式化、子串剪裁、字节字符串处理、整数和字符串互换等等许多有用的函数 包含一个机器翻译的声明文件

    关于字符串的简单功能实现

    此功能地实现主要是通过DOS的0AH号功能调用,把字符串输入到STRING缓冲区中,以’$’符为结束标志;2.在字符串中的指定位置插入字符的操作。此功能的实现主要考虑正确处理字符串的向后移位,为扩大功能,其中还使用...

    8086对字符串的处理和显示

    将输出小写变大写大写变小写然后其他的都忽略

    使用批处理获取字符串的文字

    例如:截取从"@dimen/mm_到"的内容 android:paddingLeft="@dimen/mm_30" 获取到30 android:paddingLeft="@dimen/mm_30f" 获取到-30 ...echo 在字符串"%line_str1%"中的获取的数据为%ERRORLEVEL% goto :eof

    汇编语言程序设计项目案例

    字符串处理是计算机程序设计中的基本任务之一,通过汇编语言实现字符串处理可以深入理解低级编程和计算机体系结构。该项目旨在开发一个基于汇编语言的字符串处理程序,实现字符串的基本操作,如反转、比较、连接和...

    strings.com 纯DOS环境下的文本处理工具

    5、把字符串 ABCDEFG 中第四个字符以及后面共3个字符传递给变量 LX (DEF) STRINGS LX=MID ABCDEFG,4,3 6、查找字符串 ABCDEFG 中D所在的位置并赋值给变量DX,如果没找到DX=0 STRINGS DX=FIND ABCDEFG,D 7、找出字符...

    Filekit:文件处理工具-字符串搜索和DOS命令执行-开源

    版本0.1.0包含多线程文件搜索工具,该工具允许您可以选择多个文件夹和文件,然后使用正则表达式搜索包含特定字符串的文件。 版本2.0包含DOS命令执行功能,因此您可以将DOS命令应用于所选文件夹和文件的列表。 您可以...

    写了个批量替换字符串的bat批处理(replaceChar.bat)

    鉴于dos知识有限,还没找到好的办法来避免这两种状况。如果用shell脚本完成替换功能就简单多了。或者直接用ultraedit的替换功能更简单

    CMD命令行高级教程

    三、用set 命令进行字符串处理 1、字符串替换 2、字符串截取 第六章 if 命令讲解 第一种用法:IF [NOT] ERRORLEVEL number command 第二种用法:IF [NOT] string1==string2 command 第三种用法:IF [NOT] EXIST ...

    51单片机串行通迅通用指令处理系统(类似DOS命令行)_keilc程序

    功能:上位机通过串口直接将键盘输入的指令字符串发送给下位机,下位机根据指令进行相应操作。上位机可以直接将接收到的字符串进行显示,输入的指令可以即时显示,即时修改,所见即所得,以回车键标志一个指令的结束...

    Windows系统维护常用Dos批处理CMD脚本(System)

    Windows系统维护不求人,一大批维护脚本及CMD命令速查手册,无论是做网吧做网管还是公司电脑...脚本包括:网络类,文件类,系统类,优化类,字符串处理,格式转换,路径处理,ip配置,另外还有一些神奇的特效,很酷。

    BIOS和DOS中断大全

    09H —显示字符串 0AH — 键盘缓冲输入 0BH —检测输入状态 0CH —清输入缓冲区的输入功能 (1)、功能01H、07H和08H 功能描述:从标准输入设备(如:键盘)读入一个字符。该中断在处理过程中将一直处于等待状态直到有...

    DOS编程高级技巧,命令详解,相关知识

    三、用set命令进行字符串处理 1、字符串替换 2、字符串截取 第六章 if命令讲解 第一种用法:IF [NOT] ERRORLEVEL number command 第二种用法:IF [NOT] string1==string2 command 第三种用法:IF [NOT] EXIST ...

    FindProcess.m:FINDPROCESS 尝试在 Windows 正在运行的进程列表中查找以模式编写的字符串-matlab开发

    使用: line = FindProcess(pattern) 输入:PATTERN - 用于比较的字符串输出: LINE - 包含模式的结果字符串(如果是没有找到将返回一个空字符串,或值 INF 如果发现超过 1 个进程) 注意:如果你想检查系统中的...

    BAT批处理文件语法大全

    从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本...

    BIOS_DOS中断功能调用大全

    09H —显示字符串 0AH — 键盘缓冲输入 0BH —检测输入状态 0CH —清输入缓冲区的输入功能 (1)、功能 01H、07H 和 08H 功能描述:从标准输入设备(如:键盘)读入一个字符。该中断在处理过程中将一直处于等待 状态直到...

    Dos命令大全

    符号字符串中的最后一个字符星号, 那么额外的变量将在最后一个符号解析之 分配并接受行的保留文本。 usebackq - 指定新语法已在下类情况中使用: 在作为命令执行一个后引号的字符串并且 引号字符为文字字符串命令并...

    Delphi的一个超级函数代码库

    字符串处理单元,完全兼容宽字节处理(即使用wideString),特有的中文字符串处理函数(如简繁转换等等),经过多次优化,大多以编表的方式进行处理(一般来说是最快的处理方式)。 BiosHelp.pas  读取Bios信息的...

    DOS命令大全_速查手册

    在文件中搜索文字字符串。 FINDSTR 在文件中搜索字符串。 FOR 为一套文件中的每个文件运行一个指定的命令。 FORMAT 格式化磁盘,以便跟 Windows 使用。 FTYPE 显示或修改用于文件扩展名关联的文件类型。 ...

    java程序设计实验指导代码

    8.4 实验3 字符串的比较和查找最长子串 8.5 实验4 单词逆向输出问题 8.6 实验5 ISBN书号校验问题 第9章 Applet小应用程序 9.1 预备知识 9.2 实验1 Applet生命周期 9.3 实验2 Applet的参数提取 9.4 实验3 鼠标...

Global site tag (gtag.js) - Google Analytics