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

[文本处理] 批处理怎样获取变量中的文件名再改后缀?

如 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 编辑 ]

感谢      学习了

TOP

上面不是给你列了常用的四种方法,你可以根据自己的需要选择
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

首先谢谢   寒夜孤星  的回复
文件名字符不定
但只有一个.   都是   .txt

TOP

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 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表