首页 > 其他分享 >批处理如何提取文件位置和文件名 不包括后缀

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

时间:2023-05-23 20:32:52浏览次数:30  
标签:文件 file1 abc 文件名 批处理 show 后缀 call 扩充


比如我已经得到一个文件路径
C:\abc\file1.abc 现在我要将这个路径中得到C:\abc\file1这个字符串就可以 我想知道怎么控制取得 最好是能有一个完整答案 在该目录下面 建立一个同名文件但是后缀不一样
例如知道文件C:\abc\file1.abc 我要建立一个C:\abc\file1.xyz这样一个文件 该怎么写批处理 

 

请参考:

@echo off
set str1=C:\abc\file1.abc
call :show %str1%
echo %str2%

pause
goto :eof

:show
set 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"标签就不会运行了,

标签:文件,file1,abc,文件名,批处理,show,后缀,call,扩充
From: https://blog.51cto.com/u_16125990/6334391

相关文章

  • BAT 文件后缀操作
    单个文件夹的文件ren*.jpg1*.jpg将所有.jpg1后缀改成.jpg二、所有目录下文件夹的文件@echooffsetnum=0For/r.%%iin(*.jpg1)do(set/anum+=1echo%%icallecho第%%num%%个文件处理成功ren%%i*.jpg)echo共%num%个文件被处理成功pause>nul......
  • Windows server 2022 个人使用 优化批处理batch
    Windowsserver2022个人使用一些优化@echooffregadd"HKLM\SOFTWARE\Microsoft\ActiveSetup\InstalledComponents\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}"/v"IsInstalled"/tREG_DWORD/d00000000/fregadd"HKLM\SOFTWARE\Microsof......
  • 文件的后缀名
    各种文件后缀名bai与打开方式大全扩展du名文件类型打开方式.aiff声音文件zhiWindowsmediaPlayer.!!!Netants暂存文件Netants.ani动画鼠标.arj压缩dao文件ARJ.avi电影文件WindowsmediaPlayer.awd传真文档.bak备份文件.basBasic语言Basic.batDOS......
  • PowerShell里cd文件夹报错,是因为文件名称中包含空格
    PowerShell里cd文件夹报错,是因为文件名称中包含空格。需要将文件包在引号中。 cd"C:\ProgramFiles"  ......
  • vscode中vue项目中修改.vue文件名后报错
    报错误信息:Alreadyincludedfilename'.../xxx.vue'differsfromfilename'.../xxx.vue'onlyincasing.Thefileisintheprogrambecause:Importedvia'…/xxx.vue'fromfile'.../xxx.vue'Rootfilespecifiedforcompi......
  • java获取目录下文件名称
    1.package2.import3.import4.import5.6./**7.*读取目录及子目录下指定文件名的路径,返回一个List8.*/9.10.publicclass11.privatestaticLoggerlogger=Logger.getLogger(FileViewer.class);12.13./**14.*@parampath15.......
  • 批处理处理金额小数点问题
    NumberAdapter自定义转换器/***用来处理小数点问题*/publicclassNumberAdapterextendsTypeAdapter<String>{@Overridepublicvoidwrite(JsonWriterout,Stringvalue)throwsIOException{if(value==null){out.nullValue();......
  • python -- excel文件被重命名修改后缀为.csv后,使用pandas来读取时,仍会被识别为一个exc
     新建数据文件如c_data.xlsx(后缀为.xlsx),右键重命名,直接将文件后缀名一并修改,修改为“c_data.csv”读取文件里的数据data=pd.read_csv('E:/python_workspace/data_space/c_data.csv')发现报错信息如下:Traceback(mostrecentcalllast):File"E:/python_workspace/......
  • linux 中 批量删除文件后缀
     001、rename[root@PC1test]#ls1.csv2.csv3.csva.txtb.txtc.txt[root@PC1test]#rename".txt"""*.txt##删除.txt后缀[root@PC1test]#ls1.csv2.csv3.csvabc[root@PC1test]#rename".csv"""......
  • 打开windows批处理大门
    大家好,我是xiezhr。1前言打开历史文章一看,上一篇文章是2021年3月20号更新的,又拖更了。一个原因是,最近工作上真的挺忙的,有比较着急需要加班加点赶的需求。好在清明前算是把比较着急的改好了。本来安排清明也是要加班的,但是真的加不动了。(连着加班真的挺影响效率的,适当休息是非......