标题: [文件操作] 求助完善/改进批量修改文件名的批处理代码 [打印本页]
作者: ziyooudeyu 时间: 2012-11-30 15:50 标题: 求助完善/改进批量修改文件名的批处理代码
本帖最后由 pcl_test 于 2016-7-14 12:24 编辑
对于我这样一个菜鸟急需要一位大神的指点,在网上我搜索到很多代码,可是光知道代码是没有用的
我想知道为什么,要怎么做。对于刚刚开始学习计算机的我,希望各路大神能指导。
我没有什么可以回报的,只能在论坛里没事顶顶您的帖子
盼望大神到来
:main
:: “::”是注释的意思 为了让和我一样菜的人看懂,我就把我这两天掌握的 都奉献出来。一个冒号“:”代表这里做了一个标记。“:main”是说 这里我做了一个叫main的标记,标记要和 goto一起使用。以后如果代码中出现了“goto main”就是程序执行又跳到这一行了。
@echo off
::上面这行代码可厉害了。就是不让cmd显示当前路径那些乱遭的东西,保持卫生的作用。“echo”是显示的意思,也可以用这个命令来显示当前程序中变量的值。比如我要显示变量a的值就可以在给a赋值后输入“echo %a%”至于中间的百分号,起到强调我要显示的是变量a, 而不是字符a。
cls
::清屏的意思
echo 1.格式转换
echo 2.文件名称替换
echo 3.给文件名添加文字
echo 4.退出
::如果你想在屏幕上显示出什么来,echo也是个好帮手。上面这段代码放到播放出来 就只剩下1.……2.……
set c =
set /p c= 选择
::我理解set的意思就是,安放的意思。先给程序里安放一个变量叫做“c” 然后接着用 “set /p c=选择” 这个句子等待键盘输入值。如果你输入个“骂了隔壁的”然后回车,那么c 这个变量就等于“骂了隔壁的”
if "%c%"=="1" goto gszh
if "%c%"=="2" goto mcth
if "%c%"=="3" goto tjwz
if "%c%"=="4" goto tc
::这里可以加个exit 但是好像没有什么用,上面四行代码,都是判断c的值,如果你刚才真的输入了 “骂了隔壁的” 那么程序会执行 c= 1 的命令 原因我也不知道。可能是因为我没加exit.
:gszh
::这个地方有没有发现是格式转换的首字母呢?
cls
set a =
set /p a= 输入希望替换的格式
set b =
set /p b= 输入希望变成的格式
::如果上面这几行代码没看懂请重头再看。
ren *.%a% *.%b%
:: ren 全称叫 rename 改名的意思 “*”可以代替很多个字符。也就是说 如果你想找“[泷泽萝拉第二部高清种子][ABS-141 僕を誘惑する白い妖精 滝澤ローラ.rmvb”你可以这样写“[泷泽萝拉*.rmvb”后面的乱七八糟的东西就都给省略了。如果你电脑里的这个盘里只有这么一部rmvb 那你就可以写成“*.rmvb”。ren的这个命令非常简单,前面是原来的名字 后面是想改成的名字。也就是说批量改名,无论如何都要用到ren。
pause
:: 这个是暂停,按任意键继续。
goto main
:tc
::这里可以加个exit 但是好像没有什么用,可加可不加我非常潇洒的给省略了。
::跪求大神将剩余两项功能补全,最好能写出注释。我真的很菜很菜。
作者: ziyooudeyu 时间: 2012-12-1 01:43
set /p c=请输入一个路径:
set /p a= 输入想去掉的字符
set /p b= 输入想替换的内容
for /r %c% %%i in (*) do (
set d=%%i
set d=!d:!a=!b!
:: 卡到这里了 不知道怎么调用a才能达到我想要的效果
if %%i neq !file! (ren "%%i" "!d!")
)
pause
期待高手帮忙看下
作者: ziyooudeyu 时间: 2012-12-1 12:22
这个论坛好冷清
作者: BAT-VBS 时间: 2012-12-1 20:42
回复 3# ziyooudeyu
你是怎样理解“有偿求助”这几个字的?
作者: BAT-VBS 时间: 2012-12-1 21:17
回复 2# ziyooudeyu - @echo off
- setlocal enabledelayedexpansion
- set c=
- set a=
- set b=
- set /p "c=请输入一个路径:"
- set /p "a= 输入想去掉的字符:"
- set /p "b= 输入想替换的内容:"
- for /r %c% %%i in (*) do (
- set "d=%%~nxi"
- set d=!d:%a%=%b%!
- if "%%~nxi" neq "!d!" (
- ren "%%i" "!d!"
- )
- )
复制代码
作者: ziyooudeyu 时间: 2012-12-1 22:20
本帖最后由 ziyooudeyu 于 2012-12-1 22:26 编辑
回复 5# BAT-VBS 谢谢大神指点 我仅是一个爱好者,对于有偿我很惭愧,真的是无言以对。可是我在别的版块发表不了求助。您是第一个理会我的人,对您致敬。和我想的不一样 为什么要加个~nxi 呢
作者: Batcher 时间: 2012-12-1 22:29
回复 6# ziyooudeyu
你试试代码求助&讨论这个版块
作者: ziyooudeyu 时间: 2012-12-2 20:37
回复 7# Batcher
原来可以不点子版块啊
作者: BAT-VBS 时间: 2012-12-3 14:57
回复 6# ziyooudeyu
因为要进行字符替换的只是文件名本身,而不是文件的完整路径。
作者: 810126769 时间: 2013-8-22 11:36
有人帮助真是太幸福了!向BAT-VBS致敬!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |