Board logo

标题: [文本处理] 批处理怎样获取变量中的文件名再改后缀? [打印本页]

作者: yjblfpl953    时间: 2010-6-6 22:55     标题: 批处理怎样获取变量中的文件名再改后缀?

如 set /p aaa= abc.txt
     echo.%aaa%
     echo.%aaa%.ini

首先我有二个文件   一个是abc.txt  另一个是abc.ini   
再把abc.txt   set /p aaa=abc.txt
打印出abc.txt echo.%aaa%
再打印出abc.ini   问题就在这里   我怎么只取%aaa%里的abc 而不是取全abc.txt
再把abc变成abc.ini打印出来 echo.abc.ini


怎样实现只取文件名,丢弃后缀

[ 本帖最后由 yjblfpl953 于 2010-6-6 23:04 编辑 ]
作者: hanyeguxing    时间: 2010-6-6 22:59

1,标题不符合规范
2,使用增强扩展:
  1. for %%a in ("%aaa%") do echo.%%~a和%%~na和%%~na.ini
复制代码
3,如果%aaa%中只有扩展名里的一个点.,则可以使用分隔"delims=."来解析:
  1. for /F "tokens=1* delims=." %%a in ("%aaa%") do echo.%%a.%%b和%%a和%%a.ini
复制代码
4,如果%aaa%中扩展名里有且只有4个字符,则可以使用截取字符串:
  1. echo.%aaa%和%aaa:~0,-4%和%aaa:~0,-4%.ini
复制代码
5,如果扩展名为.txt,且文件名不是这个,则可以删除:
  1. set b=%aaa:.txt=%
  2. echo.%aaa%和%b%和%b%.ini
复制代码

以上四种方法显示依次为:“文件名+.txt”和“文件名”和“文件名+.ini”

[ 本帖最后由 hanyeguxing 于 2010-6-6 23:22 编辑 ]
作者: yjblfpl953    时间: 2010-6-6 23:07

首先谢谢   寒夜孤星  的回复
文件名字符不定
但只有一个.   都是   .txt
作者: hanyeguxing    时间: 2010-6-6 23:18

上面不是给你列了常用的四种方法,你可以根据自己的需要选择
作者: yjblfpl953    时间: 2010-6-6 23:22

感谢      学习了




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2