本帖最后由 wangx 于 2014-11-4 14:19 编辑
回复 14# apang
谢谢apang的回答,帮我解决了很重要的一块问题,现在代码如下,现在的问题是截取字符串,获得了最后一项的长度后进行截取,但是在字符截取中使用!str:~0,-!len!!报错,这个写法怎么修改呢?- @echo off&setlocal enabledelayedexpansion
-
- set "_strlen=set $=^!#1^!#&set ##=&(for %%a in (2048 1024 512 256 128 64 32 16)do if ^!$:~%%a^!. NEQ . set/a##+=%%a&set $=^!$:~%%a^!)&set
- $=^!$^!fedcba9876543210&set/a##+=0x^!$:~16,1^!"
-
- for /f "delims=" %%a in (1.txt) do (
- set "str=%%a"
- if "!str:*/=!" NEQ "!str!" (
- call :Lp "%%a"
- ) else (
- for /f "tokens=1* delims=\" %%a in ("!str!") do (
- echo \%%b %%a
- )
- )
- )
- pause & exit/b
-
- :Lp
- for /f "tokens=1* delims=/" %%a in ("%~1") do (
- if "%%b" NEQ "" (
- call :Lp "%%b"
- ) else (
- set #1=%%a
- (%_strlen%) ----------这里获得最后一项字符串的长度,利用此长度截取出前面的内容
- echo !str! !str:~0,-!##!!
- )
- )
复制代码 显示结果如下
\N000490aN8626.mdf 01
\nclps\boco\src\jetsrc.std\N010099_jet.pc 02
ui/iReport/NCLtemplate/ApprovWorkCountList.jasper str:~0,-26
java/src/com/sinosoft/lis/iReport/EdorApprovWorkCountListBean.java str:~0,-32
Press any key to continue . . . |