知道美河 | 上传资料 | VIP申请 | 精品课程 | 资料搜索 | 问题反馈 | 会员手册 | 积分消费 | 积分充值 | 帐号保护
美河学习学习在线赞助VIP

美河学习在线(主站) eimhe.com

 找回密码
 建立账号
查看: 10227|回复: 3

批处理制作简单小工具

[复制链接]
发表于 2009-10-16 10:43:57 | 显示全部楼层 |阅读模式
用批处理来制作一个网段的扫描器(简单版)
dos/windows的命令行/批处理
for /l %p in (1,1,254) do @ping 192.168.1.%p -n 1 |find "reply from" /i

在dos窗口执行上面的批命令,就会显示出所有开机的ping结果.
如果显示ping不通的所有结果,则命令为:
for /l %p in (1,1,254) do @ping 192.168.1.%p -n 1 |find "request timed out" /i

如果要ping IP地址范围为(192.168.1.30~192.168.1.60),则命令改为.

for /l %p in (30,1,60) do @ping 192.168.1.%p -n 1 |find "reply from" /i

如果把上面的命令写入批处理文件(.bat,.cmd)中,要在%前再加一个%,如下:
rem myping.bat
for /l %%p in (1,1,254) do @ping 192.168.1.%%p -n 1 |find "reply from" /i

保存为bat文件,大家如果觉得慢,可以缩短范围,每个文件处理25个IP,做成10个bat文件,然后依次打开10批处理文件这样可以很快确定局域网里有多少台计算机。


批量建文件小工具
建立从1.rar到100.rar一百个rar文件。
for /l %%a in (1 1 100) do echo.>%%a.rar
大家可以根据实际情况把文件的后缀名改一下,譬如jpg,doc等等。

批处理改名工具

@echo off
::ver beat1.3[20061213]
setlocal enabledelayedexpansion
mode con lines=26
color 1f
for /f "delims=" %%i in ("%0") do set cdname=%%~dpi
:star
cls
title 批量文件改名
echo.
echo         ==============================================================
echo.
echo                             批量文件改名
echo.
echo                    欢迎使用,请选择选项(1,2,3,4,5,6,7,8)
echo.
echo                               1.简单改名
echo                               2.剔除字符
echo                               3.添加字符
echo                               4.替换字符
echo                               5.改扩展名
echo                               6.使用帮助
echo                               7.关于作者
echo                               8.退    出
echo                               9.设置路径
echo                               0.返回菜单
echo.
echo                    工作路径:%cdname%
echo.
echo                             bbs.cn-dos.net
echo         ==============================================================
echo.
set no=:
set /p no=              请选择:
set "no=%no:"=%"
if "%no%"==":" goto star
if "%no%"=="1" goto 1
if "%no%"=="2" goto 2
if "%no%"=="3" goto 3
if "%no%"=="4" goto 4
if "%no%"=="5" goto 5
if "%no%"=="6" goto 6
if "%no%"=="7" goto 7
if "%no%"=="8" goto 8
if "%no%"=="9" goto 9
if "%no%"=="0" goto 0
goto star
:1
cls
title 批量文件改名-简单改名
echo.
echo         ==============================================================
echo.
echo                             批量文件改名-简单改名
echo.
echo                 简单改名:一般用于多集电视剧或者多个文件批量改名。
echo                 例    子:如:[YYSoR]那天 台风01.语 字.d-vb.rmvb
echo                           结果为:01.rmvb
echo                 注意事项:1。不接纳文件名中出现多个“1”的文件
echo                           2。支持拖放文件,拖放不用设置路径
echo                           3。如未设置路径,使用默认路径
echo.
echo                 工作路径:%cdname%
echo.
echo               8.退    出         9.设置路径         0.返回菜单
echo.
echo.                            bbs.cn-dos.net
echo         ==============================================================
echo.
set oldname=:
set /p oldname=           请输入旧的文件名(第一集):
set "oldname=%oldname:"=%"
if "%oldname%"==":" goto 1
if "%oldname%"=="8" goto 8
if "%oldname%"=="9" goto 9
if "%oldname%"=="0" goto 0
if "%oldname%"=="1" goto no
for /f "tokens=1* delims=1" %%i in ("%oldname%") do (
                                                      set name=%%~ni
                                                      set name1=%%~nj
                                                      set cdname=%%~dpi
                                                      )
if "%cdname%"=="" goto no
cd /d %cdname%
dir /s/b/a-d . |find "%oldname%" >nul|| goto no
echo %name1% |find "1" >nul && goto no
if "%name%"=="" goto no
if "%name:~-1%"=="0" set "name=%name:~0,-1%"
if "%name%"=="" goto no
if "%name:~-1%"=="0" set "name=%name:~0,-1%"
if "%name%"=="" goto no
for /f "usebackq delims=" %%i in (`dir /s/b/a-d .`) do (
    set var=%%~nxi
    set "var=!var:%name%=!"
    ren "%%i" "!var!" >nul 2>nul
)
for /f "usebackq delims=" %%i in (`dir /s/b/a-d .`) do (
    set var=%%~nxi
    set "var=!var:%name1%=!"
    ren "%%i" "!var!" >nul 2>nul
)
goto ok

:2
cls
title 批量文件改名-剔除字符
echo.
echo         ==============================================================
echo.
echo                             批量文件改名-剔除字符
echo.
echo                 剔除字符:一般用于多个文件批量剔除指定字符串改名。
echo                 例    子:如:[YYSoR]那天 台风01.语 字.d-vb.rmvb
echo                           替换:vb
echo                           结果:[YYSoR]那天 台风01.语 字.d-.rm
echo                 注意事项:1。字符串区分大小写,支持替换空格
echo                           2。剔除范围包括文件扩展名
echo                           3。不支持特殊字符/\:*"?|<>   
echo.
echo                 工作路径:%cdname%                          
echo.
echo               8.退    出         9.设置路径         0.返回菜单
echo.
echo.                            bbs.cn-dos.net
echo         ==============================================================
echo.
set oldname=:
set /p oldname=           请输入要剔除的字符串(区分大小写):
set "oldname=%oldname:"=%"
if "%oldname%"==":" goto 2
if "%oldname%"=="8" goto 8
if "%oldname%"=="9" goto 9
if "%oldname%"=="0" goto 0
dir /s/b/a-d . |find "%oldname%" >nul|| goto no
for /f "usebackq delims=" %%i in (`dir /s/b/a-d .`) do (
    set var=%%~nxi
    set "var=!var:%oldname%=!"
    echo %%i |find "批量文件改名.bat" >nul ||ren "%%i" "!var!" >nul 2>nul
)
goto ok

:3
cls
title 批量文件改名-添加字符
echo.
echo         ==============================================================
echo.
echo                             批量文件改名-添加字符
echo.
echo                 添加字符:一般用于多个文件批量添加指定字符串改名。
echo                 例    子:如:那天 台风01.语 字.d-vb.rmvb
echo                           添加:[YYSoR]
echo                           结果:[YYSoR]那天 台风01.语 字.d-vb.rmvb
echo                 注意事项:1。字符串区分大小写,支持添加“ ”“.”
echo                           2。添加的字符都在原文件名首部  
echo                           3。不支持特殊字符/\:*"?|<>
echo.
echo                 工作路径:%cdname%                        
echo.
echo               8.退    出         9.设置路径         0.返回菜单
echo.
echo.                            bbs.cn-dos.net
echo         ==============================================================
echo.
set newname=:
set /p newname=           请输入要添加的字符串:
set "newname=%newname:"=%"
if "%newname%"==":" goto 3
if "%newname%"=="8" goto 8
if "%newname%"=="9" goto 9
if "%newname%"=="0" goto 0
dir /s/b/a-d . |find /v "批量文件改名.bat" >nul|| goto no
for /f "usebackq delims=" %%i in (`dir /s/b/a-d .`) do echo %%i |find "批量文件改名.bat" >nul ||ren "%%i" "%newname%%%~nxi" >nul 2>nul
goto ok

:4
cls
title 批量文件改名-替换字符
echo.
echo         ==============================================================
echo.
echo                             批量文件改名-替换字符
echo.
echo                 替换字符:一般用于多个文件批量替换指定字符串改名。
echo                 例    子:如:[YYSoR]那天 台风01.语 字.d-vb.rmvb
echo                           查找:[YYSoR]
echo                           替换:[China]
echo                           结果:[China]那天 台风01.语 字.d-vb.rmvb
echo                 注意事项:1。字符串区分大小写,支持替换“ ”“.”
echo                           2。替换范围包括文件扩展名
echo                           3。不支持特殊字符/\:*"?|<>
echo.
echo                 工作路径:%cdname%                        
echo.
echo               8.退    出         9.设置路径         0.返回菜单
echo.
echo.                            bbs.cn-dos.net
echo         ==============================================================
echo.
set oldname=:
set /p oldname=           请输入要查找的字符串:
set "oldname=%oldname:"=%"
if "%oldname%"==":" goto 4
if "%oldname%"=="8" goto 8
if "%oldname%"=="9" goto 9
if "%oldname%"=="0" goto 0
echo.
set newname=:
set /p newname=           请输入要替换的字符串:
set "newname=%newname:"=%"
if "%newname%"==":" goto 4
if "%newname%"=="8" goto 8
if "%newname%"=="0" goto 0
dir /s/b/a-d . |find "%oldname%" >nul|| goto no
for /f "usebackq delims=" %%i in (`dir /s/b/a-d .`) do (
    set var=%%~nxi
    set "var=!var:%oldname%=%newname%!"
    echo %%i |find "批量文件改名.bat" >nul ||ren "%%i" "!var!" >nul 2>nul
)
goto ok

:5
cls
title 批量文件改名-改扩展名
echo.
echo         ==============================================================
echo.
echo                             批量文件改名-改扩展名
echo.
echo                 修改后缀:一般用于多个文件批量修改后缀(文件扩展名)。
echo                 例    子:如:[YYSoR]那天 台风01.语 字.d-vb.rmvb
echo                           新扩展名:rm
echo                           结果:[YYSoR]那天 台风01.语 字.d-vb.rm
echo                 注意事项:1。字符串区分大小写,支持替换“ ”“.”
echo                           2。替换范围只是文件扩展名
echo                           3。删除扩展名请输入空格  
echo                           3。不支持特殊字符/\:*"?|<>
echo.
echo                 工作路径:%cdname%                        
echo.
echo               8.退    出         9.设置路径         0.返回菜单
echo.
echo.                            bbs.cn-dos.net
echo         ==============================================================
echo.
set newname=:
set /p newname=           请输入新的扩展名:
set "newname=%newname:"=%"
if "%newname%"==":" goto 5
if "%newname%"=="8" goto 8
if "%newname%"=="9" goto 9
if "%newname%"=="0" goto 0
dir /s/b/a-d . |find /v "批量文件改名.bat" >nul|| goto no
for /f "usebackq delims=" %%i in (`dir /s/b/a-d .`) do (
    set var=%%~nxi
    set "var=!var:%%~xi=.%newname%!"
    echo %%i |find "批量文件改名.bat" >nul ||ren "%%i" "!var!" >nul 2>nul ||ren "%%i" "%%~ni.%newname%"
)
goto ok

:6
cls
title 批量文件改名-帮助
echo.
echo         ==============================================================
echo.
echo                             批量文件改名 测试版
echo.
echo            1.简单改名:对于相对简单、类似的文件的改名。如:电视剧等
echo            2.剔除字符:剔除文件名中指定字符或字符串
echo            3.添加字符:增加指定字符或字符串在原文件名的首部
echo            4.替换字符:替换文件名中指定字符
echo            5.改扩展名:修改原文件的扩展名
echo            6.使用帮助:请将此程序放在需要改名文件的目录内使用
echo            7.关于作者:程序作者联系方式
echo            8.退    出:退出程序
echo            9.设置路径:设置该程序工作路径。默认为此程序所在路径
echo            0.返回菜单:返回程序主菜单
echo.
echo                            任意键返回主菜单
echo.
echo                             bbs.cn-dos.net
echo         ==============================================================
echo.
pause >nul
goto star

:7
cls
title 批量文件改名-关于作者
echo.
echo         ==============================================================
echo.
echo                             批量文件改名 测试版
echo.
echo               本软件为免费软件欢迎大家使用~!
echo               此软件用批处理写成,软件现在为测试阶段,难免存在错误。
echo               欢迎大家提出宝贵意见,以便本人及时改进。
echo               本人不会编程,但是是个批处理狂热爱好者,希望和您交流。
echo               学习过程中得到大家不少帮助,感谢willsort,namejm等等。
echo.           
echo.           
echo                          a9319751 zzlike@163.com QQ:5040366
echo.
echo                            任意键返回主菜单   
echo.
echo.                            bbs.cn-dos.net
echo         ==============================================================
echo.
pause >nul
goto star

:8
title 批量文件改名-Good Luck
cls
echo.
echo         ==============================================================
echo.
echo.
echo.
echo                                  Good Luck
echo.
echo.
echo.
echo.
echo.
echo                                   Bye~~
echo.
echo.
echo.
echo         ==============================================================
echo.
ping -n 3 127.0.0.1 >nul
exit

:9
cls
title 批量文件改名-设置路径
echo.
echo         ==============================================================
echo.
echo                             批量文件改名-设置路径
echo.
echo                 设置路径:设置程序工作路径。
echo                 例    子:如:c:\windows
echo                           结果:程序会在"c:\windows"目录下工作
echo                                 包含子目录。
echo                 注意事项:1。直接回车使用当前工作路径
echo                           2。所有工作包含子目录
echo                           3。支持拖放目录  
echo.
echo                 工作路径:%cdname%                        
echo.
echo               8.退    出         9.设置路径         0.返回菜单
echo.
echo.                            bbs.cn-dos.net
echo         ==============================================================
echo.
set /p cdname=           请输入路径:
set "cdname=%cdname:"=%"
if "%cdname%"=="8" goto 8
if "%cdname%"=="9" goto 9
if "%cdname%"=="0" goto 0
:if "%cdname:~-1%"=="\" set "cdname=%cdname:~0,-1%"
:for /f "delims=" %%i in ("%cdname%\") do set !cdname!=%%~dpi
if exist "%cdname%"  (cd /d "%cdname%" >nul 2>nul && set "%cdname%=%cd%" || goto no) else goto no
goto star

:0
cls
goto star

:no
cls
title 批量文件改名-错误信息
echo.
echo         ==============================================================
echo.
echo                             批量文件改名-错误信息
echo.
echo                 1。此文件、路径不存在或者不适合此方式改名
echo                 2。或者您的输入含有特殊字符/\:*"?|<>
echo                 3。请尝试其他方式
echo.
echo                 工作路径:%cdname%                        
echo.
echo                            任意键返回主菜单         
echo.
echo.                            bbs.cn-dos.net
echo         ==============================================================
echo.
pause >nul
goto star

:ok
cls
title 批量文件改名-任务完成
echo.
echo         ==============================================================
echo.
echo                             批量文件改名-任务完成
echo.
echo                      1。恭喜,恭喜,所有任务已完成
echo                      2。任意键打开已完成工作目录!
echo.
echo                      工作路径:%cdname%                        
echo.
echo                            任意键返回主菜单         
echo.
echo.                            bbs.cn-dos.net
echo         ==============================================================
echo.
pause >nul
start %cdname%
goto star


把上述代码改名为bat打开。

评分

1

查看全部评分

发表于 2009-12-4 08:12:40 | 显示全部楼层
发表于 2010-9-7 14:30:58 | 显示全部楼层
发表于 2012-2-24 20:11:28 | 显示全部楼层
您需要登录后才可以回帖 登录 | 建立账号

本版积分规则

 
QQ在线咨询

QQ|小黑屋|手机版|Archiver|美河学习在线 ( 浙网备33020302000026号 )

GMT+8, 2025-5-9 21:14

Powered by Discuz!

© 2001-2025 eimhe.com.

快速回复 返回顶部 返回列表