批处理如何提取文件位置和文件名 不包括后缀

来源:互联网 发布:linux下snmpwalk使用 编辑:程序博客网 时间:2024/05/29 04:30
比如我已经得到一个文件路径C:\abc\file1.abc 现在我要将这个路径中得到C:\abc\file1这个字符串就可以 我想知道怎么控制取得 最好是能有一个完整答案 在该目录下面 建立一个同名文件但是后缀不一样 例如知道文件C:\abc\file1.abc 我要建立一个C:\abc\file1.xyz这样一个文件 该怎么写批处理先悬赏50分 回答好可用好理解 就再加50分
请参考:@echo offset str1=C:\abc\file1.abccall :show %str1%echo %str2%pausegoto :eof:showset str2=%~dpn1 简要说明:对于变量%0~%9及for里使用的%i这样的变量,可以有以下的语法:     ~I         - 删除任何引号("),扩充 %I     %~fI        - 将 %I 扩充到一个完全合格的路径名     %~dI        - 仅将 %I 扩充到一个驱动器号     %~pI        - 仅将 %I 扩充到一个路径     %~nI        - 仅将 %I 扩充到一个文件名     %~xI        - 仅将 %I 扩充到一个文件扩展名     %~sI        - 扩充的路径只含有短名     %~aI        - 将 %I 扩充到文件的文件属性     %~tI        - 将 %I 扩充到文件的日期/时间     %~zI        - 将 %I 扩充到文件的大小以上的结果是可以组合的。我们可以通过"%~dpn"这样形式的组合获取一个路径形式的变量的路径及文件名的组合。在这里,首先我假设"C:\abc\file1.abc"已经在一个变量里面,因为调用它使用的是"%%"的格式,不能扩充,所以我们需要使用call调用一段代码来将它转换成%1的形式。所以你看到了"call :show %str1%" 这一句,通过这里调用call标签后的语句。另外一个需要注意的是在被调用的":show"标签前面是一句"goto :eof",表示批处理运行至此跳转至文件末尾(也就是退出程序),后面的":show"标签就不会运行了,相信建立一个C:\abc\file1.xyz这样形式的文件对你来说不是问题,我就不写了

原创粉丝点击