Board logo

标题: [文件操作] [已解决]求助批处理调用DAT文件来批量更名的问题 [打印本页]

作者: yifei0320    时间: 2019-1-23 16:52     标题: [已解决]求助批处理调用DAT文件来批量更名的问题

下载的有声书,下载下来的原文件为红色框内纯数字名字且不带后缀(正确后缀应该为m4a)现在需要调用DAT里的数据将文件夹内文件名字改成绿色框内的中文名,
自己写写改改的折腾了一天也没成功,请各位大神帮忙~附件是DAT文件,谢谢!

PS:简单的说就是图1的文件调用download.dat文件将图1的名字改成图2绿色框内名字~
作者: yhcfsr    时间: 2019-1-23 18:40

本帖最后由 yhcfsr 于 2019-1-23 19:32 编辑
  1. <# :
  2. @echo off&cd/d "%~dp0"
  3. more +8 "%~0">"%~dpn0.ps1"
  4. powershell -Nologo -NoProfile -Exec bypass -file "%~dpn0.ps1"
  5. del /f /q "%~dpn0.ps1"
  6. pause&exit
  7. #>
  8. $content=type 'download.dat' -ReadCount 0 -encoding UTF8;
  9. [system.collections.arraylist] $result=@();
  10. $ErrorActionPreference='SilentlyContinue';
  11. foreach($line in $content)
  12. {
  13. if($line -match '^\s*$'){continue;}
  14. $line=$line -split '@';
  15. $oldname=$line[1];
  16. $newname=$line[6]+'.m4a';
  17. if(test-path $oldname){ren $oldname $newname;}
  18. }
复制代码

作者: yifei0320    时间: 2019-1-23 19:29

回复 2# yhcfsr


我非常感谢你的热心帮助,解决了我的大问题,改名成功~谢谢
作者: Batcher    时间: 2019-1-23 20:24

  1. @echo off
  2. for /f "tokens=2,7 delims=@" %%a in ('powershell -c "gc download.dat"') do (
  3.     if exist "%%a" (
  4.         ren "%%a" "%%b.m4a"
  5.     )
  6. )
复制代码

作者: yifei0320    时间: 2019-1-23 21:10

回复 4# Batcher


    因为都是中文名,TXT直接编辑改出来乱码,用Notepad++改编码另存后就好了,感谢~




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