|
fjzzgxwb
新手上路

积分 13
发帖 6
注册 2006-12-1
状态 离线
|
『楼 主』:
求一批量改文件名的脚本
使用 LLM 解释/回答一下
谢谢,例如:(A是一个常量,B是变量)
A123.txt 改名之后--------> 123.txt
A456.txt 改名之后---------> 456.txt
A999.txt 改名之后---------> 999.txt
ps: (说白了,也就是把A这个常量去掉,:)
还要做到可以扫整个盘。
谢谢了:P:P~~~
Thanks, for example: (A is a constant, B is a variable)
A123.txt After renaming --------> 123.txt
A456.txt After renaming ---------> 456.txt
A999.txt After renaming ---------> 999.txt
ps: (To put it simply, that is, remove the constant A, :)
Also need to be able to scan the entire disk.
Thanks :P:P~~~
|
|
2006-12-1 09:12 |
|
|
namejm
荣誉版主
       batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第 2 楼』:
使用 LLM 解释/回答一下
A这个常量如果是固定长度的话,则可以考虑通过字符截取操作把A去掉;如果长度不固定的话,则用 set var=!str1:A=! 的格式勉强可行,前提是:在同一文件名中,A这个字符串不和其余部分有重合。
If constant A is of fixed length, you can consider removing A through character truncation operations; if the length is not fixed, the format of set var=!str1:A=! can be used reluctantly, provided that: in the same file name, the string A does not overlap with the rest.
|

尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2006-12-1 09:27 |
|
|
fjzzgxwb
新手上路

积分 13
发帖 6
注册 2006-12-1
状态 离线
|
『第 3 楼』:
使用 LLM 解释/回答一下
嗯,版主好热心啊,谢谢。
这里的A,我要用到字符串的。。后面的就是例如 www.163.com]
版主能否帮忙写下批脚本?
Um, the moderator is very enthusiastic, thank you.
Here, for A, I need to use strings. The following is for example www.163.com]
Can the moderator help write a batch script?
|
|
2006-12-1 09:40 |
|
|
namejm
荣誉版主
       batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第 4 楼』:
使用 LLM 解释/回答一下
给你两段演示代码:
@echo off
:: 使用把指定字符串置换为空的方法
setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
set var=%%i
set var=!var:=!
echo %%i 改名后为 !var!
)
pause
@echo off
:: 使用抛弃固定长度字符串的方法
setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
set var=%%i
echo %%i 改名后为 !var:~13!
)
pause
test.txt的内容为:
123.txt
a bc.txt
d e7f89.txt
Here are the translations:
Here are two demonstration codes:
@echo off
:: Use the method of replacing the specified string with empty
setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
set var=%%i
set var=!var:=!
echo %%i after renaming is !var!
)
pause
@echo off
:: Use the method of discarding fixed-length strings
setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
set var=%%i
echo %%i after renaming is !var:~13!
)
pause
The content of test.txt is:
123.txt
a bc.txt
d e7f89.txt
|

尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2006-12-1 11:14 |
|
|
a9319751
中级用户
  
积分 439
发帖 170
注册 2006-1-9
状态 离线
|
『第 5 楼』:
使用 LLM 解释/回答一下
电视剧改名,不是很完美
@echo off
setlocal enabledelayedexpansion
echo 默认修改后文件名为01.rm
pause
set newname=01.rm
:set /p oldname=请输入旧的文件名:
:set /p newname=请输入新的文件名:
set /p num=请输入共几集:
for /f "tokens=1,2 delims=." %%i in ("%newname%") do (
set newname1=%%i
set newname2=%%j
)
if "%newname1:~0,1%"=="0" set newname1=%newname1:~1%
:loop
for %%i in (*.*) do (echo %%i |find "0%newname1%" && move %%i 0%newname1%.%newname2%)
if "%newname1%"=="%num%" goto :eof
set /a newname1=%newname1%+1
goto loop
TV drama renamed, not very perfect
@echo off
setlocal enabledelayedexpansion
echo The default renamed file name is 01.rm
pause
set newname=01.rm
:set /p oldname=Please enter the old file name:
:set /p newname=Please enter the new file name:
set /p num=Please enter the total number of episodes:
for /f "tokens=1,2 delims=." %%i in ("%newname%") do (
set newname1=%%i
set newname2=%%j
)
if "%newname1:~0,1%"=="0" set newname1=%newname1:~1%
:loop
for %%i in (*.*) do (echo %%i |find "0%newname1%" && move %%i 0%newname1%.%newname2%)
if "%newname1%"=="%num%" goto :eof
set /a newname1=%newname1%+1
goto loop
|
|
2006-12-2 06:45 |
|
|
a9319751
中级用户
  
积分 439
发帖 170
注册 2006-1-9
状态 离线
|
『第 6 楼』:
使用 LLM 解释/回答一下
test
Last edited by a9319751 on 2006-12-5 at 04:41 AM ]
test
Last edited by a9319751 on 2006-12-5 at 04:41 AM ]
|
|
2006-12-2 07:31 |
|
|
fjzzgxwb
新手上路

积分 13
发帖 6
注册 2006-12-1
状态 离线
|
『第 7 楼』:
使用 LLM 解释/回答一下
谢谢版主及楼上这位朋友的热心帮助,谢谢大家的关注。
我呢,注册本论坛就马上发求助的贴,还真有点不好意思。其实我想要这个批处理确实是想改电影名称的。。。呵呵~~一个一个名字的改,工作量很大,本人批处理又不会。。无奈~
我试下了,版主的批处理可以做到改名了,不过还要局限于我们列出的名字。。。
倘若我们事先不知道我们电脑里多少个这样带有固定符号www.163.com]呢
这样就不方便了。
楼上这位朋友的批处理也还是不够。。
请会的朋友帮忙加以完善下,不甚感激。。。
Thanks to the moderator and the friend above for your enthusiastic help, and thank you all for your attention.
Well, I registered on this forum and immediately posted a help-seeking post. I'm really a bit embarrassed. Actually, I really want this batch processing to change movie names... Hehe~~ Changing each name one by one is a lot of work, and I don't know batch processing. Helpless~
I tried it. The moderator's batch processing can rename, but it's still limited to the names we listed...
What if we don't know in advance how many such ones with fixed symbols www.163.com] are in our computer?
Then it's not convenient.
The batch processing of the friend above is still not enough.
Please help improve it if you know how. I'm very grateful...
|
|
2006-12-2 17:28 |
|
|
namejm
荣誉版主
       batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第 8 楼』:
使用 LLM 解释/回答一下
那就得把你的所有条件全部罗列出来,光说替换A常量,但是又不给出所有可能的情况的话,我只能给演示代码了。
Then you need to list all your conditions. Just saying replace constant A, but not giving all possible situations, then I can only give the demo code.
|

尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2006-12-2 20:08 |
|
|
fjzzgxwb
新手上路

积分 13
发帖 6
注册 2006-12-1
状态 离线
|
『第 9 楼』:
使用 LLM 解释/回答一下
版主这么早就来了,呵呵。不好意思,怪我没把问题说清楚。
我想要的效果就是:运行批处理后,首先会让用户输入定义常量Awww.163.com],
(因为有的电影不单是一个地址下的,所以会不一样),然后就是用批处理把带有
www.163.com]的这个量去掉,而不能出现覆盖提示的现象(如能更明确地显示出这
次我们究竟改了多少个文件名,在C盘下生成个ren.txt,记录下,最佳),还要过滤我的
电脑里的所有文件,如 C,D,E,F盘。。。
情况就是这样子,再次感谢!
The moderator is here so early, heh. I'm sorry, I didn't make the problem clear.
The effect I want is: After running the batch file, it will first let the user enter the defined constant Awww.163.com],
(Because some movies are not just under one address, so it will be different), then use the batch file to remove the amount with
www.163.com], and there should be no overwrite prompt phenomenon (if it can more clearly show how many file names we have actually changed this time, generate a ren.txt under the C drive to record it, which is the best), and also filter all files on my computer, such as C, D, E, F drives...
That's the situation. Thank you again!
|
|
2006-12-2 23:12 |
|
|
fjzzgxwb
新手上路

积分 13
发帖 6
注册 2006-12-1
状态 离线
|
『第 10 楼』:
使用 LLM 解释/回答一下
不好意思,急需这个批处理..请会的朋友帮下忙,谢谢
I'm sorry, I need this batch script urgently. Please help if you know how, thank you
|
|
2006-12-4 01:33 |
|
|
a9319751
中级用户
  
积分 439
发帖 170
注册 2006-1-9
状态 离线
|
『第 11 楼』:
使用 LLM 解释/回答一下
文件改名.bat
@echo off
set /p oldname=请输入旧的文件名:
set /p newname=请输入新的文件名:
setlocal enabledelayedexpansion
dir /b . >list.txt
for /f "tokens=1 delims=1" %%i in ("%oldname%") do set name=%%i
if "%name:~-1%"=="0" set name=%name:~0,-1%
if "%name:~-1%"=="0" set name=%name:~0,-1%
if "%name:~-1%"==" " set name=%name:~0,-1%
if "%name:~-1%"==" " set name=%name:~0,-1%
for /f "delims=" %%i in (list.txt) do (
set var=%%i
set var=!var:%name%=!
ren %%i !var!
)
dir /b . >list.txt
for /f "tokens=1,2 delims=1" %%i in ("%oldname%") do set name=%%j
for /f "delims=" %%i in (list.txt) do (
set var=%%i
set var=!var:%name%=!
ren %%i !var!
)
dir /b . >list.txt
for /f "tokens=1,2 delims=." %%i in ("%newname%") do set name=%%j
for /f "delims=" %%i in (list.txt) do echo %%i |find "." || ren %%i %%i.%name%
del list.txt
del %0
生成文件.bat
for /f %%i in (listfile.txt) do copy listfile.txt %%i
listfile.txt
[YYSoR]那年夏天的台风01.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风02.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风03.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风04.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风05.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风06.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风07.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风08.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风09.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风10.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风11.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风12.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风13.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风14.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风15.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风16.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风17.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风18.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风19.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风20.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风21.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风22.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风23.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风24.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风25.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风26.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风27.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风28.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风29.国语中字.d-vb.rmvb
[YYSoR]那年夏天的台风30.国语中字.d-vb.rmvb
使用时把“文件改名.bat”放在要改名的电影的文件夹运行即可,使用前请先备份自己的重要文件
Renaming Files.bat
@echo off
set /p oldname=Please enter the old file name:
set /p newname=Please enter the new file name:
setlocal enabledelayedexpansion
dir /b . >list.txt
for /f "tokens=1 delims=1" %%i in ("%oldname%") do set name=%%i
if "%name:~-1%"=="0" set name=%name:~0,-1%
if "%name:~-1%"=="0" set name=%name:~0,-1%
if "%name:~-1%"==" " set name=%name:~0,-1%
if "%name:~-1%"==" " set name=%name:~0,-1%
for /f "delims=" %%i in (list.txt) do (
set var=%%i
set var=!var:%name%=!
ren %%i !var!
)
dir /b . >list.txt
for /f "tokens=1,2 delims=1" %%i in ("%oldname%") do set name=%%j
for /f "delims=" %%i in (list.txt) do (
set var=%%i
set var=!var:%name%=!
ren %%i !var!
)
dir /b . >list.txt
for /f "tokens=1,2 delims=." %%i in ("%newname%") do set name=%%j
for /f "delims=" %%i in (list.txt) do echo %%i |find "." || ren %%i %%i.%name%
del list.txt
del %0
Generating Files.bat
for /f %%i in (listfile.txt) do copy listfile.txt %%i
listfile.txt
Typhoon in That Summer 01. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 02. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 03. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 04. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 05. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 06. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 07. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 08. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 09. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 10. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 11. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 12. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 13. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 14. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 15. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 16. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 17. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 18. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 19. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 20. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 21. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 22. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 23. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 24. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 25. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 26. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 27. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 28. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 29. Mandarin Chinese Subtitles.d-vb.rmvb
Typhoon in That Summer 30. Mandarin Chinese Subtitles.d-vb.rmvb
When using, place "Renaming Files.bat" in the folder of the movies to be renamed and run it. Please back up your important files before use
|
|
2006-12-4 07:55 |
|
|
arjay
新手上路

积分 9
发帖 5
注册 2006-12-3
状态 离线
|
|
2006-12-4 22:37 |
|