首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用文件的内容重命名备用配套文件。

使用文件的内容重命名备用配套文件。
EN

Stack Overflow用户
提问于 2014-07-21 01:24:10
回答 1查看 100关注 0票数 1

我读过一些主题( Use the contents of a file to rename it ),当它们涉及到我的问题时,我没有足够的深度来修改它们以满足我的需要。我想要一批解决方案,如果你其他的会好的话。

我有几百份文件按以下顺序排列:-

  • PHRASE0001.J8I
  • PHRASE0001.WAV
  • PHRASE0002.J8I
  • PHRASE0002.WAV

每个J8I二进制文件都开始:-

代码语言:javascript
复制
JS-8  ¬¬fmt    ¬   ¬J8I   ¬    ¬Pop:Classic Pop
JS-8  ¬¬fmt    ¬   ¬J8I   ¬    ¬Pop:Classic Pop (Simple)

然后,每个J8I二进制文件在1kb的数据之前填充大约256字节的00十六进制,然后是EOF。

我想要一个批处理,把PHRASE0001.J8I中的字符串"Pop :经典Pop“偏移到33位,并将其姐妹文件PHRASE0001.WAV重命名为”Pop-经典Pop.WAV“(即删除所有冒号,一些文件有两个并替换为”-“(SPACEDASHSPACE) )。

根据相应的J8I文件中的内容,只能重命名WAV。

因此,当PHRASE0245.J8I包含一个名为PHRASE0245.WAV的文件时,应该将其改名为“PHRASE0245.WAV”,或者将其命名为“.WAV- Samba1 (BPM - 100).WAV”。

代码语言:javascript
复制
JS-8  ¬¬fmt    ¬   ¬J8I   ¬    ¬Latin:Samba1 (BPM:100)

我相信,这个脚本可以在许多情况下使用,一旦完成,即使是我也可以轻松修改。

谢谢你找我

查利

我忘了,我不能肯定,因为我没有检查每一个文件,但我认为最长的字符串类似于" Country : Country Ballad (Alternative)“,或者不太长,但它们总是后面跟着00,我想要么从64个字符中截短就足以避免错误,要么读到多个空格就足以找到字符串的含义。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-21 03:11:32

对于具有空值的示例文件,将对其进行测试,并在这里工作。

在文件夹中的一些示例文件上自己测试它--您需要下载免费的GNUsed for Windows

而且可能还需要用安装位置替换脚本中的sed

"c:\utils\gnused\sed.exe"类似,除非您将它(和sed支持文件)放在路径上的文件夹中。

代码语言:javascript
复制
@echo off
for %%a in (*.J8I) do (
   if exist "%%~na.wav" for /f "delims=" %%b in (' sed -e "s/^.\{32\}\(.[^\x00]*\).*/\1/" -e "s/:/ - /g" "%%a" ') do (
      if exist "%%~na.wav" echo renaming "%%~na.wav" to "%%b.wav" & ren "%%~na.wav" "%%b.wav"
   )
)
pause
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24856524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档