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

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

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

PS:简单的说就是图1的文件调用download.dat文件将图1的名字改成图2绿色框内名字~
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 4# Batcher


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

TOP

  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. )
复制代码
1

评分人数

    • yifei0320: 这个代码也可以,感谢大神~~技术 + 1
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# yhcfsr


我非常感谢你的热心帮助,解决了我的大问题,改名成功~谢谢

TOP

本帖最后由 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. }
复制代码
1

评分人数

QQ 33892006

TOP

返回列表