Batch file 从文件名中删除文本并创建单独的存档
我有一个包含很多文件的目录,例如: 杰基尔博士和海德先生的奇怪案例——罗伯特·路易斯·史蒂文森。博士Batch file 从文件名中删除文本并创建单独的存档,batch-file,rename,archive,Batch File,Rename,Archive,我有一个包含很多文件的目录,例如: 杰基尔博士和海德先生的奇怪案例——罗伯特·路易斯·史蒂文森。博士 审判-弗兰兹·卡夫卡.doc 悲惨世界-维克多·雨果,中国 恋爱中的女人-D.H.劳伦斯.莫比 被绑架-罗伯特·路易斯·史蒂文森中华人民共和国 房间-Emma Donoghue.pdf 请帮助我编写CMD命令,以重命名所有文件并输出如下内容: 杰基尔博士和海德先生的奇怪案例。博士 审判。doc 《悲惨世界》中华人民共和国 恋爱中的女人。H.劳伦斯.莫比 被绑架。中华人民共和国 Room.pdf
审判-弗兰兹·卡夫卡.doc
悲惨世界-维克多·雨果,中国
恋爱中的女人-D.H.劳伦斯.莫比
被绑架-罗伯特·路易斯·史蒂文森中华人民共和国
房间-Emma Donoghue.pdf 请帮助我编写CMD命令,以重命名所有文件并输出如下内容: 杰基尔博士和海德先生的奇怪案例。博士
审判。doc
《悲惨世界》中华人民共和国
恋爱中的女人。H.劳伦斯.莫比
被绑架。中华人民共和国
Room.pdf 然后分别归档文件: 杰基尔博士和海德先生的奇怪案例。rar
审判。rar
悲惨世界报 恋爱中的女人。rar
被绑架。rar
房间号 p/s:我已经写了一个归档文件的命令,但它不起作用。哪里错了 对于/f“delims=“%%b in('dir.”/ad/b)do(
“c:\ProgramFiles\7-Zip\7z.exe”a-r-tzip“%%b.Zip”
)
@ECHO关闭
SETLOCAL enabledelayedexpansion
设置“sourcedir=U:\books”
设置“destdir=U:\destdir”
调用:makedummydata
对于/f“delims=“%%a IN('dir/b/a-d”%sourcedir%\*“)DO(
对于(“%%a”)中的/f“delims=-”%%b,请执行以下操作(
设置“book=%%b”
回显导出?ren?“%sourcedir%\%%a”“!book:~0,-1!%%~xa”
ECHO“c:\Program Files\7-Zip\7z.exe”a-r-tzip“%destdir%\!book:~0,-1!.Zip“%sourcedir%\!book:~0,-1!%%~xa”
ECHO“c:\Program Files\7-Zip\7z.exe”a-r-tzip“%destdir%\!book:~0,-1!.Zip“%sourcedir%\%%a”
)
)
后藤:EOF
:makedummydata
::
::此部分仅用于设置我的测试目录u:\books上指定的文件
::
MD“%sourcedir%”2>nul
对于%%b英寸(
“杰基尔博士和海德先生的奇怪案例——罗伯特·路易斯·史蒂文森博士”
“审判-弗兰兹·卡夫卡博士”
“悲惨世界-维克多·雨果,中国”
“恋爱中的女人——D·H·劳伦斯·莫比”
“被绑架-罗伯特·路易斯·史蒂文森,中华人民共和国”
“傲慢与偏见-简·奥斯汀,中国”
“房间-Emma Donoghue.pdf”
)做(
复制/y NUL“%sourcedir%\%%~b”>NUL
)
后藤:EOF
不确定您所说的导出是什么意思。也许吧
我已经演示了如何执行7z
命令,但我不知道您是想先重命名文件还是一步完成。我假设每本书的标题都是name-author.ext
,在-
两侧各有一个空格
这些命令只是echo
ed,因此您可以在执行之前进行验证
请注意,如果标题中有某些字符,这将无法正常工作-尤其是“
,尽管&
似乎很高兴-这就是我添加字符的原因
另一件需要担心的事情是使用-
作为分隔符。如果标题包含-
,或者作者的名字包含-
,或者两者都包含,会发生什么情况
哦,不!可怕的“它不起作用”回答没有详细说明程序做了什么或没有做什么 这里是一个修订的批处理,包含了提供的额外细节。**注意,它在虚拟目录中创建了一组虚拟文件,然后重命名并归档它们**
@ECHO关闭
SETLOCAL enabledelayedexpansion
设置“sourcedir=U:\books”
设置“destdir=U:\destdir”
调用:makedummydata
回音之前。。。
目录%sourcedir%
目录%destdir%
对于/f“delims=“%%a IN('dir/b/a-d”%sourcedir%\*“)DO(
对于(“%%a”)中的/f“delims=-”%%b,请执行以下操作(
设置“book=%%b”
ren“%sourcedir%\%%a”!book:~0,-1!%%~xa
“c:\Program Files\7-Zip\7z.exe”a-r-tzip”%destdir%\!book:~0,-1!.Zip”%sourcedir%\!book:~0,-1!%%~xa”
)
)
在…之后回音。。。
目录%sourcedir%
目录%destdir%
后藤:EOF
:makedummydata
::
::此部分仅用于设置我的测试目录u:\books上指定的文件
::
MD“%sourcedir%”2>nul
MD“%destdir%”2>nul
REM DEL“%sourcedir%\*?*”2>nul
REM del“%destdir%\*?*”2>nul
对于%%b英寸(
“杰基尔博士和海德先生的奇怪案例——罗伯特·路易斯·史蒂文森博士”
“审判-弗兰兹·卡夫卡博士”
“悲惨世界-维克多·雨果,中国”
“恋爱中的女人——D·H·劳伦斯·莫比”
“被绑架-罗伯特·路易斯·史蒂文森,中华人民共和国”
“傲慢与偏见-简·奥斯汀,中国”
“房间-Emma Donoghue.pdf”
)做(
复制/y NUL“%sourcedir%\%%~b”>NUL
)
后藤:EOF
下面是我跑步的结果:
before...
Volume in drive U has no label.
Volume Serial Number is 02E6-1000
Directory of U:\books
28/03/2014 11:40 <DIR> .
28/03/2014 11:40 <DIR> ..
28/03/2014 11:46 0 The Strange Case of Dr Jekyll and Mr Hyde - Robert Louis Stevenson.doc
28/03/2014 11:46 0 The Trial - Franz Kafka.doc
28/03/2014 11:46 0 Les Miserables - Victor Hugo.prc
28/03/2014 11:46 0 Women In Love - D. H. Lawrence.mobi
28/03/2014 11:46 0 Kidnapped - Robert Louis Stevenson.prc
28/03/2014 11:46 0 Pride & Prejudice - Jane Austen.prc
28/03/2014 11:46 0 Room - Emma Donoghue.pdf
7 File(s) 0 bytes
2 Dir(s) 2,145,681,408 bytes free
Volume in drive U has no label.
Volume Serial Number is 02E6-1000
Directory of U:\destdir
28/03/2014 11:40 <DIR> .
28/03/2014 11:40 <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 2,145,681,408 bytes free
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Scanning
Creating archive U:\destdir\The Strange Case of Dr Jekyll and Mr Hyde.zip
Compressing The Strange Case of Dr Jekyll and Mr Hyde.doc
Everything is Ok
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Scanning
Creating archive U:\destdir\The Trial.zip
Compressing The Trial.doc
Everything is Ok
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Scanning
Creating archive U:\destdir\Les Miserables.zip
Compressing Les Miserables.prc
Everything is Ok
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Scanning
Creating archive U:\destdir\Women In Love.zip
Compressing Women In Love.mobi
Everything is Ok
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Scanning
Creating archive U:\destdir\Kidnapped.zip
Compressing Kidnapped.prc
Everything is Ok
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Scanning
Creating archive U:\destdir\Pride & Prejudice.zip
Compressing Pride & Prejudice.prc
Everything is Ok
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Scanning
Creating archive U:\destdir\Room.zip
Compressing Room.pdf
Everything is Ok
after...
Volume in drive U has no label.
Volume Serial Number is 02E6-1000
Directory of U:\books
28/03/2014 11:40 <DIR> .
28/03/2014 11:40 <DIR> ..
28/03/2014 11:46 0 The Strange Case of Dr Jekyll and Mr Hyde.doc
28/03/2014 11:46 0 The Trial.doc
28/03/2014 11:46 0 Les Miserables.prc
28/03/2014 11:46 0 Women In Love.mobi
28/03/2014 11:46 0 Kidnapped.prc
28/03/2014 11:46 0 Pride & Prejudice.prc
28/03/2014 11:46 0 Room.pdf
7 File(s) 0 bytes
2 Dir(s) 2,145,452,032 bytes free
Volume in drive U has no label.
Volume Serial Number is 02E6-1000
Directory of U:\destdir
28/03/2014 11:40 <DIR> .
28/03/2014 11:40 <DIR> ..
28/03/2014 11:46 224 The Strange Case of Dr Jekyll and Mr Hyde.zip
28/03/2014 11:46 160 The Trial.zip
28/03/2014 11:46 170 Les Miserables.zip
28/03/2014 11:46 170 Women In Love.zip
28/03/2014 11:46 160 Kidnapped.zip
28/03/2014 11:46 176 Pride & Prejudice.zip
28/03/2014 11:46 150 Room.zip
7 File(s) 1,210 bytes
2 Dir(s) 2,145,452,032 bytes free
在。。。
驱动器U中的卷没有标签。
卷序列号为02E6-1000
U:\books目录
28/03/2014 11:40 .
28/03/2014 11:40 ..
2014年3月28日11:46 0杰基尔博士和海德先生的奇怪案例-罗伯特·路易斯·史蒂文森.doc
2014年3月28日11:46 0审判-Franz Kafka.doc
2014年3月28日11:46 0悲惨世界-维克多·雨果中国
2014年3月28日11:46 0恋爱中的女人-D.H.劳伦斯·莫比
2014年3月28日11:46 0被绑架-Robert Louis Stevenson.prc
2014年3月28日11:46 0傲慢与偏见-简·奥斯汀中国
2014年3月28日11:46 0室-Emma Donoghue.pdf
7个文件0个字节
2个目录2145681408个可用字节
驱动器U中的卷没有标签。
卷序列号为02E6-1000
U:\destdir的目录
28/03/2014 11:40 .
28/03/2014 11:40 ..
0个文件0个字节
2个目录2145681408个可用字节
7-Zip[64]9.20版权所有(c)1999-2010伊戈尔·巴甫洛夫2010-11-18
扫描
创建存档U:\destdir\Jekyll博士和Hyde先生的奇怪案例
压缩杰基尔博士和海德先生的奇怪案例
一切都好
7-Zip[64]9.20版权所有(c)1999-2010伊戈尔·巴甫洛夫2010-11-18
扫描
正在创建存档U:\destdir\The Trial.zip
压缩Trial.doc文件
一切都好
7-Zip[64]9.20版权所有(c)1999-2010伊戈尔·巴甫洛夫2010-11-18
扫描
正在创建存档U:\destdir\Les Miserables.zip
中华人民共和国
一切都好
7-Zip[64]9.20版权所有(c)1999-2010伊戈尔·巴甫洛夫2010-11-18
扫描
正在创建存档U:\destd
@echo off
for %%a in (
"The Strange Case of Dr Jekyll and Mr Hyde - Robert Louis Stevenson.doc"
"The Trial - Franz Kafka.doc"
"Les Miserables - Victor Hugo.prc"
"Women In Love - D. H. Lawrence.mobi"
"Kidnapped - Robert Louis Stevenson.prc"
"Room - Emma Donoghue.pdf"
) do type nul>"%%a"
:: remove the above after testing
for /f "tokens=1,* delims=|" %%a in ('dir /b /a-d ^|find /v /i "%~nx0" ^|find /v /i "repl.bat" ^|repl "(.*?) - .*(\..*)$" "$&|$1$2" a') do (
ren "%%a" "%%b"
"C:\Program Files\7-Zip\7z.exe" a "%%~nb" "%%b"
del "%%b"
)
pause