我有这样的结构:批处理文件解压缩然后重命名其JPG文件依次
Biographies <base folder>
----Elon Musk <person #1 folder>
----|---Modern-Day Genius <chapter name folder>
----|-------Elon Musk - Modern-Day Genius.txt <person #1's biography>
----|-------Elon Musk - Modern-Day Genius.zip <50-100 photos of person #1>
----|-----------Driving a Tesla.jpg <photo 1>
----|-----------Elon Musk on the train.jpg <photo 2>
----|-----------SpaceX factory.jpg <photo ...>
----Steve Jobs <person #2 folder>
----|---Visionary <chapter name folder>
----|-------Steve Jobs - Visionary.txt <bio>
----|-------Steve Jobs - Visionary.zip <zip of photos>
----|-----------At his home in California.jpg <photo 1>
----|-----------At work on the first iPhone.jpg <photo 2>
----|-----------Steve Jobs yelling at people.jpg <photo ...>
我期待1)解压缩该.zip文件(使用7zip的) 2)重命名使用A所提取.jpgs )文本文件名+ B)增加的数字。
So, you'd end up with:
Under the "Modern-Day Genius" folder, you'd have:
Elon Musk - Modern-Day Genius 001.jpg
Elon Musk - Modern-Day Genius 002.jpg
Elon Musk - Modern-Day Genius 003.jpg
因为“Elon Musk - Modern-Day Genius”是txt文件的根文件名,001-00n是因为某些计数器。
and under the "Visionary" folder, you'd have:
Steve Jobs - Visionary 001.jpg
Steve Jobs - Visionary 002.jpg
Steve Jobs - Visionary 003.jpg
etc.
这个过程听起来很容易,但我已经花了20个小时试图在上周弄清楚这一点。我不是Windows批处理文件的全新,但我不是很擅长。明显。 ;-)我已经阅读了大约一百篇文章,例子,“教程”等,而且我没有在网上找到任何解决方案。我已经尝试了很多变体,并且有一些这样的批处理文件,但实际上并不奏效。
我认为搞清楚这不仅对我有益,而且对其他一些试图解压文件的人也有好处,因此可以根据外部参数重新命名它的内容。看起来很普遍有用。
下面是一个例子,但没有一个w /重新编号。我有'重新编号'批处理文件,但他们并没有真正的工作(他们只重命名第一个文件等),这是一团糟。我希望有人比我更聪明,可以帮助解决这个问题。
@echo off
setlocal enabledelayedexpansion
set PATH=%PATH%;C:\Program Files\7-Zip\
for %%t in ('dir /b *.txt) do (
set textfilename=%%t)
7z e *.zip
for /f %%a in ('dir/b *.jpg) do (
rename "*.jpg" "!textfilename! - *.jpg"
)
我喜欢你从'1000'使用'Cnt'的技巧,然后只取下3位数字。比我的版本更好! – abelenky
@abelenky谢谢。 AT:user3450848我的编号不是按字母顺序排列的,我的测试文件夹驱动器位于FreeNAS Samba服务器上,而不是NTFS格式的驱动器,其中alpha分类是固有的。我可以使用第二个for/f来代替dir/B/ON。 – LotPings
@LotPings感谢您的快速回复和解释。我正逐行通过你的文件来理解。并查看每一部分。我很困惑,在REN系列中,xJ意味着什么。我看到你在Samba服务器上,所以也许这就是为什么,但是在Win7中,.jpg文件在002而不是001开始编号。我非常感谢你的帮助,试图教给我和其他读者。昨天手动重新命名了数千个文件,我的手很痛苦。 StackOverflow社区非常棒。 – user3450848