精华内容
下载资源
问答
  • 0开头字符串直接进行表达式算术运算时,BAT批处理脚本会默认把0开头的字符串转换为8进制数值,比如:set /a sum="021"+5 将得到22,。如果是09,028等字符串直接进行运算则会报错,因为09,028不是有效8进制数值。为此...

    0开头字符串直接进行表达式算术运算时,脚本会默认把0开头的字符串转换为8进制数值,如下:

    rem a=22,021转成10进制为17,17+5=22
    set /a num="021"+5
    
    rem 会报错,028不是有效8进制。数字常数只能是十进制(17),十六位进制(0x11)或八进制(021)set /a num="028"+5
    

    类似09,028等显然不是有效8进制数,为此0开头的字符串转成数值需要特殊处理,如何实现呢?

    1、已知位数情况

    比如日期:2020-09-12 00:00:00,需要获取月份进行一些运算:
    1)可通过字符串截取得到 月份是9月:09, set mm=09
    2)09 转换成数字,因为月份就2位,所以可以加10000然后对100求模,如下:

    rem 10009%100得到9
    set /a m=100%mm%%%100
    

    2、位数不确定

    比如:012987623、001233445怎么处理?
    1)计算位数,知道了位数,就同已知位数情况:写个循环除10,次数累加即可获取位数
    2)字符串去前置0,类似高级语言的ltrim,代码strzero.bat如下:

    @echo off & setlocal enabledelayedexpansion
    set str2="00987"
    call :trimZero %str2%
    
    rem 00=>0,00987=>987,0987=>987
    echo %result%
    goto :eof
    
    :trimZero
    set i=0
    set strnum=%~1
    :loop
    if "!strnum:~%i%,1!" == "0" (
        set /a i+=1
        goto loop
    )
    set result=!strnum:~%i%!
    if not defined result set result=0
    goto :eof
    

    代码说明:
    本案例涉及函数定义、调用,变量延时读取等知识点,关于BAT批处理脚本开发基础指南,可以参考:windows bat 批处理脚本编写指南

    展开全文
  • 我们对 Date 日期进行截取,set /a a=%Date:~0,4%+1 截取了年份,并加了 1,把值存到了变量 a 中,下面再利用 %a% 引用 a 就能看到对应的效果了。 @echo off echo 原始日期:%Date% set /a a=%Date:~0,4%+1 ...

    我们对 Date 日期进行截取,set /a a=%Date:~0,4%+1 截取了年份,并加了 1,把值存到了变量 a 中,下面再利用 %a% 引用 a 就能看到对应的效果了。

    @echo off
    
    echo 原始日期:%Date%
    set /a a=%Date:~0,4%+1
    echo 截取年份并加1:%a%
    
    pause
    

    效果图如下:
    可以看到年份进行了加 1 处理。
    在这里插入图片描述
    喜欢的点个赞❤吧!

    展开全文
  • <code>@echo off title %#% %$%%$%%@% %z% set /p ID=MODID: set "line=%ID%" >...workshop_download_item 221100 %提取的数字放到这里% +quit</code></pre>  </p>
  • bat字符串位数计算的最佳方法

    千次阅读 2017-12-04 11:01:26
    以前总是用到goto法,如今发现在for命令嵌套中并不适用。现自己又发现了一种新的方法,相比于goto跳出循环法,计算速度上并没有区别。反而拥有如下优点:速度快、适用于for嵌套、代码量少。代码如下:@echo off&...
    以前总是用到goto法,如今发现在for命令嵌套中并不适用。现自己又发现了一种新的方法,相比于goto跳出循环法,计算速度上并没有区别。
    
    反而拥有如下优点:速度快、适用于for嵌套、代码量少。

    代码如下:
    @echo off&setlocal enabledelayedexpansion
    set /p a=input:
    for /l %%a in (0,1,9999) do (
        set /a b+=1
        if not "!a:~%%a,1!"=="" (
            set c=!b!
        )
    )
    set /p=%c%


    展开全文
  • 菜鸟求教~ 请问如何在bat中把一个字符串型的变量赋值为空字符串
  • bat截取字符串

    千次阅读 2012-12-24 16:56:16
    很久之前研究bat截取字符串,一段时间不用就忘记了。在此记录下来,方便以后查看   例子: @echo off set str=123456789 echo 第一个字符为:%str:~0,1% echo 头两个字符为:%str:~0,2% echo 头5个字符为:%...

    很久之前研究bat截取字符串,一段时间不用就忘记了。在此记录下来,方便以后查看

     

    例子:

    @echo off
    set str=123456789
    echo 第一个字符为:%str:~0,1%
    echo 头两个字符为:%str:~0,2%
    echo 头5个字符为:%str:~0,5%
    echo 去掉最后一个字符后的字符串为:%str:~0,-1%
    echo 去掉最后3个字符后的字符串为:%str:~0,-3%

    echo 去掉第一个字符后的字符串为:%str:~1%
    echo 第4个字符为:%str:~3,1%
    echo 第4个及其之后的3个字符为:%str:~3,4%
    echo 最后一个字符为:%str:~-1%
    echo 最后一个字符为:%str:~-1,1%
    echo 最后两个字符为:%str:~-1,2%
    echo 倒数第4个字符为:%str:~-4,1%
    echo 倒数第4个及其之后的字符为:%str:~-4%
    echo 倒数第4个及其之后的1个字符为:%str:~-4,2%
    echo 倒数第4个及其之后的2个字符为:%str:~-4,3%
    pause
    为了说明这个问题,我在这里把批处理取字符,做下进一步的解释,希望对新手有所启发
    如下:
    echo %var:~n,k%
    我们在这里对每个参数做个说明:"%var",即我们要从中要截取字符的字符串." ~ "取字

    符标志符(我是这么理解的),"n" 我们将其理解为指针,"k"我们将其理解为偏移地址.

    (注:指针和偏移地址都是从零开始数的)
    我们还是用namejm版主的例子做下说明:

    @echo off
    set str=123456789

    rem 定义一个str字符串为123456789

    echo 第一个字符为:%str:~0,1%

    rem 指针为0,偏移地址为1,即从第0位开始,取1位

    echo 头两个字符为:%str:~0,2%

    rem 指针为0,偏移地址为2,即从第0位开始,取2位

    echo 头5个字符为:%str:~0,5%

    rem  指针为0,偏移地址为5,即从第0位开始,取5位

    echo 去掉最后一个字符后的字符串为:%str:~0,-1%

    rem 当"k"为负值时,我们可以这样理解:从指针开始处开始取其后面所有字符,然后减去

    后面"abs(k)位"..所以这个句字我们可以做如下解释:从第0位开始取其全部字符

    为:123456789然后从后面减去abs(k)位,所以最后结果为:12345678

    echo 去掉最后3个字符后的字符串为:%str:~0,-3%

    rem  该句解释同上↑

    echo 最后一个字符为:%str:~-1%

    rem  参数"n,"和"k"都可以为缺省,缺省"n,"时可以理解为:从abs(k)位开始取其全部

    echo 倒数第4个及其之后的字符为:%str:~-4%

    rem        解释同上↑

    echo 最后一个字符为:%str:~-1,1%

    rem  n为负值时,表示从后面开始截取字符,取k位(此时n应从1开始数)

    echo 最后一个字符为:%str:~-1,2%

    rem  解释同上↑

    echo 倒数第4个字符为:%str:~-4,1%

    rem  解释同上↑

    echo 倒数第4个及其之后的1个字符为:%str:~-4,2%

    rem  解释同上↑

    echo 倒数第4个及其之后的2个字符为:%str:~-4,3%

    rem 解释同上↑
    pause

     

    原文地址:http://www.cnblogs.com/dongzhiquan/archive/2009/03/18/1994934.html

    展开全文
  • 由于我的是多工程,所以自己做了...那么我给bat传参数时,最终是传到qmake和nmake,对qmake来讲,可以定义一个宏,然后在源代码里面进行访问,这就带来一个问题:如何宏定义字符串数字。 首先说说规则, pro里
  • bat字符串中截取字符

    千次阅读 2014-07-17 19:22:39
    字符串a=132456789为例,分别截取
  • BAT批处理中的字符串处理详解(字符串截取) BAT批处理中的字符串处理详解(字符串截取 批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集。批处理中可实现的字符串处理功能有:...
  • GCC编译器是linux上的版本,在windows上的版本就是MinGW;编译成.exe还用VC++编译器是Vistualstudio上自带的;.bat是批处理文件,里面直接写上要执行的代码,可以直接一次性执行;整数和字符串转换:...
  • 学习GitHub吴师兄一篇文章目录1....给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 Ps: 本题中,我们将空字符串定义为有效的回文串。 输入: “A man, a plan, a canal: P...
  • BAT】中文数字to阿拉伯数字转换

    千次阅读 2018-03-25 10:09:20
    将下面脚本保存到文本文档,另存为后缀.bat ,运行即可。 功能:将当前目录下所有文件文件名中的中文数字改为英文数字。 @echo off for /f "delims=" %%i in ('dir /b') do call :Replacement "%%i...
  • String 作为最常见的编程语言类型之一,在...题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man...
  • (1)给定如下面形式的字符串:“ad,app,ai,apk”,"bed book bool bat byte"...把数字储存成字符串储存的就是数字字符,例如可以将213以‘2’、‘1’、‘3’、‘\0’的形式储存在一个字符串数组中。而以...
  • BAT批处理有着具有非常强大的字符串处理能力,其功能虽没有C、Python等高级编程语言丰富,但是常见的字符串截取、替换、连接、查找等功能也是应有尽有,本文逐一详细讲解。
  • 字符串中的数字

    2018-02-23 18:50:14
    输入一个字符串,长度不超过20,字符串中包含数字和非数字字符,将其中是数字的字符提取出来,对它们进行从小到大排序,非数字字符则忽略不计。Input若干行字符串Output每一个字符串中所有数字的升序排序。每个数字...
  • String 作为最常见的编程语言类型之一,在算法面试中...题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:"Am...
  • bat中的特殊字符,以及需要在bat中当做... 在set中表示使用扩展环境变量指定位置的字符串; 在set/a中表示按位取反。 % \\使用两个%包含一个字符串表示引用环境变量。比如一个%time%可以扩展到当前的系统时间; 单个...
  • 字符串面试题的特点 1.广泛性 a. 字符串可以看做是字符类型的数组,与数组排序、查找、调整有关 b.很多其他类型的面试题可以看做是字符串类型的面试题 (看似与字符串无关,深度剖析后可用字符串进行处理) ...
  • 批处理中可实现的字符串处理功能有:截取字符串内容、替换字符串特定字段、合并字符串、扩充字符串等功能。下面对这些功能一一进行讲解。  ● 1、截取字符串  截取字符串可以说是字符串处理功能中最常用的一个子...
  • 小技巧:Bat命令批量删除文件名中特定字符串

    万次阅读 多人点赞 2019-05-30 18:37:51
    起因 一个字,懒! 但是机器做简单重复的事,都不会这么觉得~反而可能乐在其中哈! 具体操作 用bat命令批量操作,新建一个.bat文件(就是....set "str=想要去掉的字符串" for /f "delims=" %%i in ('dir /b *.*...
  • .bat批处理(九):替换带有等号=的字符串的子串

    千次阅读 多人点赞 2020-04-19 11:11:18
    今天写这篇记录要解决的问题来源于最近一名读者的提问,之前写过一篇名为《.bat批处理(六):替换字符串中匹配的子串》的总结文章,结果有读者在评论区提问说,如果想要替换的子串中包含等号 `=`,那么就无法替换了...
  • 给定一个字符串str,求其中全部数字串所代表的数字之和。 要求: 1. 忽略小数点字符,例如”A1.3”,其中包含两个数字1和3 2. 如果紧贴数字子串的左侧出现字符”-“,当连续出现的数量为奇数时,则数字视为负数,...
  • bat实现文件字符串替换

    千次阅读 2010-03-02 16:46:09
    set /p all= 请输入替换字符串: for /f "delims=" %%i in ('type "%file%"') do ( set str=%%i set "str=!str:%replaced%=%all%!" echo !str!>>"%file%"_tmp.txt ) copy "%file%" "%file%"_bak.txt >nul 2>...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,647
精华内容 10,658
关键字:

bat字符串转数字