• bat 批处理 字符串 截取


    由于项目中配置项太多,经常有同事在配置xml的时候,讲 配置的路径搞错,先需要搞一个脚本,可以自动将路径截取出来,

    晚上收集了点资料,暂时先上几个 bat

    后面留着 ,具体实现。

    @echo off
    set var=0
    rem ************循环开始了
    :continue
    set /a var+=1
    echo 第%var%次循环
    if %var% lss 100 goto continue
    rem ************循环结束了
    echo 循环执行完毕
    pause
    @echo off
    set  filePath=D:Program FilesVMwarevmware.exe
    ::有/P参数时,是需要手动输入,去掉后,即为固定。
    for %%a in ("%filepath%") do (
     set str=%%~pda
      set var=%%~nxa
    )
    echo.路径为:%str%
    echo.文件为:%var%
    pause
    ::code by lxmxn @ cn-dos.net . 
    ::目的:帮助新手们更好的理解变量字符截取功能. 
    ::Date 2006-12-16 . 
    ::说明:有的变量截取之后值为空,这是正常的. 
    :: 
    @echo off&setlocal EnableDelayedexpansion 
    ::设置变量var的值: 
    set var=0123456789ABCDEF 
    call :begin 
    for /l %%a in (1,3,15) do ( 
    for /l %%b in (1,4,15) do ( 
    call :printf %%a %%b 
    ) 
    ) 
    call :begin 
    for /l %%a in (1,4,15) do ( 
    for /l %%b in (-1,-3,-15) do ( 
    call :printf %%a %%b 
    ) 
    ) 
    call :begin 
    for /l %%a in (-2,-3,-15) do ( 
    for /l %%b in (1,4,15) do ( 
    call :printf %%a %%b 
    ) 
    ) 
    call :begin 
    for /l %%a in (-1,-4,-15) do ( 
    for /l %%b in (-2,-3,-15) do ( 
    call :printf %%a %%b 
    ) 
    ) 
    pause 
    endlocal&cls&echo. 
    echo 演示结束了,任意键退出…… 
    pause>nul 
    goto :eof 
    
    ::输出结果: 
    :printf 
    echo %%var:~%1,%2%% 截取之后的字符为: !var:~%1,%2! 
    goto :eof 
    
    ::清理屏幕: 
    :begin 
    echo&pause&cls&echo. 
    echo 变量var的值为: %var% 
    echo. 
    goto :eof 
    @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
    for /f "eol=- tokens=2 delims= " %%i in (result.txt) do echo %%i>>s2.txt
  • 相关阅读:
    oracle 10g 免安装客户端在windows下配置
    sql2005 sa密码
    使用windows live writer 有感
    windows xp SNMP安装包提取
    汉化groove2007
    迁移SQL server 2005 Reporting Services到SQL server 2008 Reporting Services全程截图操作指南
    foxmail 6在使用中的问题
    AGPM客户端连接不上服务器解决一例
    SpringSource Tool Suite add CloudFoundry service
    Java 之 SWing
  • 原文地址:https://www.cnblogs.com/ifzy/p/3687675.html
Copyright © 2020-2023  润新知