[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理如何实现对字符串进行截取后并赋值给变量?

在批处理执行中我输入了一个路径(即看作字符串)"D:\1\2\111\aaa.jjj.zzz.txt",怎么去掉首尾的引号并赋值给一个变量呢(如赋值给变量a)?然后再截取变量a中aaa.jjj.zzz这段并赋值给一个变量呢?请各位前辈帮帮忙指点,谢谢。

  1. @echo off
  2. set s="D:\1\2\111\aaa.jjj.zzz.txt"
  3. for %%a in (%s%) do set a=%%~a
  4. for %%a in (%a%) do set b=%%~na
  5. echo.%b%
  6. pause
复制代码

TOP

回复 1楼 的帖子

这样“截取”?
  1. @echo off
  2. set path_="D:\1\2\111\aaa.jjj.zzz.txt"
  3. set a=%path_:"=%
  4. set b=%a:~11,11%
  5. echo %b%
  6. pause
复制代码

[ 本帖最后由 lxzzr 于 2009-7-17 19:19 编辑 ]

TOP

回复 2楼 的帖子

呵呵 太感谢了,您的代码满足的需求。
我太菜了是个新手再请教一下:
for %%a in (%s%) do set a=%%~a
for %%a in (%a%) do set b=%%~na
这两行是什么意思能不能说的详细的点。

TOP

回复 3楼 的帖子

哈哈 感谢兄弟的热心帮助。
你代码可以实现我问题中的举例
但是这行set b=%a:~11,11%不具通用性。

TOP

回复 5楼 的帖子

还以为你要“截取”呢? 呵呵

set a=%%~a
rem 删除任何引号


set b=%%~na
rem 扩充到一个文件名


参考:FOR /?

[ 本帖最后由 lxzzr 于 2009-7-17 19:50 编辑 ]

TOP

看下for的帮助命令就明白了。
Still with wax

TOP

返回列表