想从“D:\Program\Study Release\Release Solution”中把“Release Solution”拉出来组成另一个字串,怎样实现?效果如下:StringA="D:\Program\Study Release\Release Solution"中间怎么做得到
StringB="Release Solution"

解决方案 »

  1.   

    @echo off
    set StringA=D:\Program\Study Release\Release Solution
    set StringB=%StringA:~-16%
    echo %StringB%
    pause或者直接把StringA直接输出保存成文本好了,echo %StringA%>>F:\temp.txt
      

  2.   

    这个是针对固定字串的。其实我的字串的格式大都是D:\Program\Study Release\Release Solution这种形式,但是最后不一定都是“Release Solution”也就是说我要把一个路径的最后一个目录取出来
      

  3.   

    命令行直接:
    FOR /F "eol=\ delims='\' tokens=3" %i in ("D:\Program\Study Release\Release Solution") do @echo %i如果在.bat文件中:
    FOR /F "eol=\ delims='\' tokens=3" %%i in ("D:\Program\Study Release\Release Solution") do @echo %%i
      

  4.   


    set StringA="D:\Program\Study Release\Release Solution"
    call :Test %StringA%
    pause
    goto :End
    :Test
    echo %~n1
    :End
      

  5.   

    test.bat@echo off
    SET StringA=%1
    echo %StringB%:sub
    set StringB=%~nx1
    调用的时候,test "D:\Program\Study Release\Release Solution"输出:C:\test>test "D:\Program\Study Release\Release Solution"
    Release SolutionC:\test>
    C:\AAA>test "D:\Program\Study Release\Release Solution"
    Release SolutionC:\AAA>
      

  6.   

    copy错了,就是我楼上那样的@echo off
    SET StringA=%1
    call :sub %StringA%
    echo %StringB%
    :sub
    set StringB=%~nx1
      

  7.   

    这个厉害,再请教一下,如果字串是:"D:\Program\Study Release\Release Solution\"
    后面多了一个\的话怎样才能把“Release Solution”取出来呢?
      

  8.   


    @echo off
    set StringA="D:\Program\Study Release\Release Solution\"
    call :Test %StringA%
    pause
    goto :End
    :Test
    set StringA=%~1
    set StringB="%~n1"
    if not %StringB% == "" goto OK
    call :Test "%StringA:~0,-1%"
    goto :End
    :OK
    echo %StringB%
    :End