标题: [文本处理] 批处理如何将绝对路径名取出文件名? [打印本页]
作者: Android-Luo 时间: 2011-7-15 10:46 标题: 批处理如何将绝对路径名取出文件名?
比如文件file.txt的内容如下:- D:/data/area/ioc/map/base/Coor.class
- D:/data/area/new/car/hic.txt
- D:/data/area/rod/class/game/BindNpcDB.class
- D:/data/area/fei.exe
复制代码
现在想通过for循环取出文件名(例如,Coor.class,hic.txt。。。)给变量,如下- @ECHO OFF
- setlocal enabledelayedexpansion
-
- FOR /F %%i in (file.txt) do (
- set j=echo %%i | sed "s#^.*\\##g"
- echo !j!
- )
复制代码
但在执行时老是输出错误:
ECHO 处于关闭状态。
这个是什么原因了,有什么办法可以取出?
作者: CrLf 时间: 2011-7-15 11:33
- @ECHO OFF
- FOR /F %%i in (file.txt) do echo %%~nxi
复制代码
用扩展参数就行了,不需要 sed ,而且批处理也没有 vbs 里的那种直接将命令输出作为变量内容的办法,要么通过 for ,要么通过第三方(比如 conset)
作者: Android-Luo 时间: 2011-7-15 12:07
谢谢版主,终于搞定了!
作者: Hello123World 时间: 2011-7-15 14:44
本帖最后由 Hello123World 于 2011-7-15 14:46 编辑
- @echo off
- For /f "delims=" %%i in (1.txt) do echo %%~nxi
- pause
复制代码
不考虑路径中含有空格的情况吗?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |