在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
此文本文档由pdf格式转换过来,由于转换的限制, 代码可能存在断行的情况,在使用的过程中请注意检查。 ----------------------------------------------------------------------------- 1. CMD.mdb 1. 16<=>10 欲在cmd下转进制,自己搞加减乘除? 喝多了头疼死,算了 偷了把鸡,利用ping和set帮忙运算了一把 hoho,什么都不会,就会投机,巨人肩膀上一站,技术在那里? 用法: DxH 数字 例如: DxH 1234567 DxH 0x1234fd3 @echo off if "%1" "" goto :syntax if "%1" "/?" goto :syntax :H2D set tmpx=%1 if "%tmpx:~0,2%" "0x" ( for /f "delims=" %%i in ('set /a %1') do ( echo. echo %1 = %%i goto :end ) ) :D2H setlocal ENABLEDELAYEDEXPANSION for /f "tokens=2" %%i in ('ping %1 -n 1 -w 1 ^|find "Pinging"') do ( for /f "tokens=1-4 delims=." %%a in ("%%i") do ( set /a tmp1 = %%a / 16 set /a tmp2 = %%a - 16 * !tmp1! set /a tmp3 = %%b / 16 set /a tmp4 = %%b - 16 * !tmp3! set /a tmp5 = %%c / 16 set /a tmp6 = %%c - 16 * !tmp5! set /a tmp7 = %%d / 16 set /a tmp8 = %%d - 16 * !tmp7! for /l %%a in (1,1,8) do ( if !tmp%%a! 10 set tmp%%a=!tmp%%a:10=A! if !tmp%%a! 11 set tmp%%a=!tmp%%a:11=B! if !tmp%%a! 12 set tmp%%a=!tmp%%a:12=C! if !tmp%%a! 13 set tmp%%a=!tmp%%a:13=D! if !tmp%%a! 14 set tmp%%a=!tmp%%a:14=E! if !tmp%%a! 15 set tmp%%a=!tmp%%a:15=F! ) ) ) echo. echo %1 = 0x!tmp1!!tmp2!!tmp3!!tmp4!!tmp5!!tmp6!!tmp7!!tmp8! endlocal :end goto:eof :syntax cls echo. echo.DxH.cmd 16进制^<=^>10进制 互转脚本. Written by hitme 2005.7.27 echo. echo.用法: DxH 数字 echo. echo.例如: DxH 1234567 echo. DxH 0x1234fd3 DxH.rar 2. CCF attachment.rar 3. cmd 述求:有一个party,达到对到场人员,随机分组玩团队游戏的目的。。。 能够随意的输入姓名,输入完后,把随机分组排列的姓名显示在屏幕上 设姓名文本为name.txt,一个名字一行 分组规则为:4人一组 思路为:乱编号+编号排序=乱序,然后分组 随机空间大小为10的3次方,几十人的party应该够了吧 准备好name.txt,保存为xy.cmd运行,自定义修改红色部分 @echo off for /f "delims=" %%i in (name.txt) do ( setlocal ENABLEDELAYEDEXPANSION for /l %%a in (1,1,3) do ( echo %random% >nul set m=!m!!random:~-1! ) echo !m!!:%%i>>tmp.txt endlocal ) setlocal ENABLEDELAYEDEXPANSION set /a num=0 set /a linenum=0 for /f "delims=" %%i in (tmp.txt) do set /a linenum=!linenum!+1 for /f "tokens=1,2* delims=: " %%i in ('sort tmp.txt ^| findstr /n "."') do ( set n=%%k set m=!m!!n! set /a num=!num!+1 if !num! 4 ( echo !m!>>tmp1.txt set /a num=0 set m=) if "%%i" "!linenum!" ( if "!m!" neq "" echo !m!>>tmp1.txt) ) endlocal findstr /n "." tmp1.txt>list.txt del tmp*.txt start list.txt xy.rar 4. cmd cmd下的一些文本处理 开头跑个题,插播个广告,隆重推出,铛铛铛铛~~~,excel!excel!excel! m$那个电子表格软件?提它做什么?这题太跑了吧? 做行文本处理!排序,过滤,中间插入,翻个身,倒个个,奇偶行交换,抽取 1,4,9..行,合并,交叉合并,首行填充奇数行,等等72变 相比xnix shell,各种文本编辑软件,决不逊色,入门还更容易,帮助文件更 为详尽,实为居家旅行,杀人越货的强手货,没有概念的赶紧试用。 使用时需要的仅仅是个思路。思路..思路很重要! 言归正传,还是cmd,用它做文本处理,只能算是勉为其难,凑合着用吧,常 做深呼吸,小心给"憋"着了 1.列表多个文本文件文件名+文件内容 2.构造001.txt 002.txt 999.txt 文本内容分别是text001 text002 3.构造http://..001|002|003../01|02|03.htm序列 4.将一堆文本形式的网址单独转换成IE收藏夹的快捷方式 5.将IE收藏夹导出为CSV格式文档 6.有txt文件all.txt 和 a.txt 里面存放的是文件列表,求出a.txt里面没有 ,而all.txt里有的文件列表 7.文本文件中的单词实现全文自动统计并排序 8.统计一个文本文件中某一单词出现的次数? 9.GB和Maxthon群组转换 10.合并2个字幕文本文件 11.snap&compare 多个html的固定内容 1.列表多个文本文件文件名+文件内容 find /v "" *.txt >list.txt *继续观察自带命令的有价值输出 ------------------------------------------------------------ 2.构造001.txt 002.txt 999.txt 文本内容分别是text001 text002 for /l %i in (1,1,9) do @echo text00%i >00%i.txt for /l %i in (10,1,99) do @echo text0%i >0%i.txt for /l %i in (100,1,999) do @echo text%i >%i.txt *分段补零 ----------------------------------------------------------------- 3.构造http://..001|002|003../01|02|03.htm文件,以下内容保存为.bat文件 执行 代码: setlocal ENABLEDELAYEDEXPANSION for /l %%i in (1001,1,1162) do for /l %%j in (101,1,112) do @(set s=%%i && set t=%%j && echo ^<td^>^<a href="http://www.sergeaura.net/TGP/!s:~1,3!/images/!t:~1,2!.jpg" rel="external nofollow" target="_blank" ^>!s :~1,3!!t:~1,2!.jpg^</a^>^</td^> >>file.htm) endlocal *嵌套for,两组变量 *00x,0x序号构造,加减高位 ccfer su99原创 ------------------------------------------------------------ 4.将一堆文本形式的网址单独转换成IE收藏夹的快捷方式 for /f "tokens=1,2,3 delims=:/" %i in ('findstr /n "." 文本.txt') do echo [InternetShortcut] >>%k_%i.url && echo url=http://%k >>%k_%i.url *没什么特别的 ------------------------------------------------------------ 5.将IE收藏夹导出为CSV格式文档,以下内容保存为.bat文件执行 代码: for /f "tokens=1,3,4 delims=:" %%i in ('findstr /s "http" *.url') do if %%k neq 0 (echo %%i,http:%%j:%%k >>list.csv) else echo %%i,http:%%j >>list.csv *findstr /s *.*得到文件相对路径,利用之 ------------------------------------------------------------ 6.有txt文件all.txt 和 a.txt 里面存放的是文件列表,求出a.txt里面没有 ,而all.txt里有的文件列表 #有txt文件 all.txt 和 a.txt 里面存放的是文件列表,a.txt 是 all.txt 的 子集,求出a.txt里面没有,而all.txt里有的文件列表 for /f "delims=" %i in (all.txt) do @findstr /x /c:"%i" a.txt >nul || @findstr /x /c:"%i " b.txt >nul || @echo %i>>b.txt *连续的||..||应用 ------------------------------------------------------------ 7.文本文件中的单词实现全文自动统计并排序 一个文本文件,每行有一个单词或字符串(有重复的),几千行。用word或 UE只能做到按字典顺序重新排列、或选中某词统计其个数。 有没有一种方法能自动统计每一不同单词的出现次数,并输出结果列表(加按 出现次数排序就更好了)。 源文件内容: abc adfg aew dew abc abc aew adfg abc dew adfg ewq abc 自动统计并排序后输出列表(假设): abc 5 adfg 3 aew 2 dew 2 ewq 1 设输入文本为tmp for /f "delims=" %i in (tmp) do @echo %i >> %i.txt @findstr /n "." *.txt >tmp1 for /f "tokens=1-3 delims=:" %i in (tmp1) do @echo %k %j>%i copy *.txt result.txt *分类汇总,excel,awk。。不合用的时候,cmd顶住 *行号=数量 ------------------------------------------------------------ 8.统计一个文本文件中某一单词出现的次数?,以下内容保存为.bat文件执行 find_word.bat 代码: @echo off setlocal ENABLEDELAYEDEXPANSION set /p file=请输入要查询的文件名: set /p name=请输入要查询的单词: set /a n=0 :loop set /a n=n+1 for /f "tokens=%n% delims=,;.()[]{}!? " %%i in (%file%) do if /i %%i equ %name% echo %name% >>%name%.txt if %n% neq 255 (goto loop) else goto end :end for /f "delims=:" %%i in ('findstr /n "." %name%.txt') do set x=%%i echo %name%出现的次数为:%x% del %name%.txt endlocal *for进行单词匹配,慢死人的那种,纯属yy ------------------------------------------------------------ 9.GB和Maxthon群组转换,以下内容保存为.bat文件执行 GB和Maxthon群组转.bat 代码: @echo off :common setlocal ENABLEDELAYEDEXPANSION findstr "CaptorGroup" *.cgp && goto max_gb || goto gb_max :max_gb rd /s/q gb_group md gb_group for %%i in (*.cgp) do echo [Group]>>gb_group\\%%i for %%a in (*.cgp) do for /f "tokens=1-4 delims :" %%i in ('findstr /n "=" "%%a " ') do set /a n=%%i-2 && echo name!n!=%%j>>gb_group\%%a && echo ^url!n!=%%k:%%l>>gb_group\%%a goto end :gb_max rd /s/q max_group md max_group for %%a in (*.cgp) do for /f "tokens=2 delims " %%i in ('findstr "." "%%a " ') do echo %%i>>max_group\%%~na.txt for %%a in (max_group\*.txt) do echo [CaptorGroup]>>max_group\%%~na.cgp for %%a in (max_group\*.txt) do for /f "tokens=1,2 delims=: " %%i in ('findstr "." "%%a " ') do if "%%i" neq "http" (set n=%%i) else (if "%%i" "http" echo !n!=http:%%j>>max_group\%%~na.cgp) del /q max_group\*.txt goto end endlocal :end cls echo 转换完成,请查看子目录 pause exit *两行并一行,一行拆两行 ------------------------------------------------------------ 10.合并2个字幕文本文件 合并2个字幕文本文件 原始文件1如下 代码: 1 00:00:17,920 --> 00:00:18,625 Charlie? 2 00:00:19,858 --> 00:00:20,606 Charlie? 3 00:00:21,635 --> 00:00:23,140 和我一块儿去散步怎样? 4 00:00:23,739 --> 00:00:24,456 不 5 00:00:24,972 --> 00:00:27,317 不,不去,Locke,今天我哪儿都不想去 原始文件2如下 代码: 1 00:00:17,820 --> 00:00:18,525 Charlie? 2 00:00:19,758 --> 00:00:20,506 Charlie? 3 00:00:21,535 --> 00:00:23,040 How about you and I go for a walk? 4 00:00:23,639 --> 00:00:24,356 No. 5 00:00:24,872 --> 00:00:27,217 No, thanks, Locke. I think I'm gonna stay in today. 要求合并后的文件如下 代码: 1 00:00:17,920 --> 00:00:18,625 Charlie? Charlie? 2 00:00:19,858 --> 00:00:20,606 Charlie? Charlie? 3 00:00:21,635 --> 00:00:23,140 和我一块儿去散步怎样? How about you and I go for a walk? 4 00:00:23,739 --> 00:00:24,456 不 No. 5 00:00:24,972 --> 00:00:27,317 不,不去,Locke,今天我哪儿都不想去 No, thanks, Locke. I think I'm gonna stay in today. 想把中英文字幕合并起来,边看片子还可以边学学英文 其实软件上是可以同时加载2个字幕的,也可以实现要求 可是我现在看片子都是在Xbox上看,XBMC这个播放软件在同一时间只能支持一 个srt字幕,所以才会有此要求 设文件名为file1.txt file2.txt,以下内容保存为.bat文件执行 f.bat 代码: del 1.txt 2.txt all.txt 合并后文档.txt echo 加一行 >2.txt type file2.txt >>2.txt copy file1.txt 1.txt :#源文件准备 findstr /n "." 1.txt 2.txt >tmp.txt :#合并源文件并添加行号 for /l %%i in (1,1,500) do findstr /r "^1.txt:%%i:" tmp.txt >>all.txt || findstr /r "^2.txt:%%i:" tmp.txt >>all.txt :#分析,构造目标文件 for /f "tokens=3,* delims=:" %%i in (all.txt) do echo %%i%%j >>合并 后文档.txt :#滤除多余信息 *交叉合并 ------------------------------------------------------------ 11.snap&compare 多个html的固定内容 有以下内容 http://www.abcd.com/pub/wrok1.html http://www.abcd.com/pub/wrok2.html http://www.abcd.com/pub/wrok3.html . .. ... http://www.abcd.com/pub/wrok(*).html 每个html,几乎整个html部分都是固定内容,除了我要监测的(文本方式打开 )第225行,第38位开始,75位结束这段,它们 有不定时的改变,所有html更新的部分也许不止这一个地方,但我只想监测这 一段 有没有软件或方法snap一次镜像,然后下次再snap后作出对上次snap的对比 ,得出哪个url的html内容监测段作出了改变? 无错误控制,以下内容保存为.bat文件执行 snap&compare.bat 代码: @echo off del 差异.txt 2>nul copy /y snap.txt snap_old.txt 1>nul :#清理及悲愤snap :snap echo %date% %time% >snap.txt :#加入时间戳 set url=http://www.abcd.com/pub/wrok :#url变量赋值 for /l %%i in (1,1,100) do curl %url%%%i.html | findstr /n "." | findstr /r "^225:" >>tmp.txt && echo %url%%%i >>tmp.txt :#下载htm并过滤所需行 setlocal ENABLEDELAYEDEXPANSION for /f "tokens=1* delims=:" %%i in (tmp.txt) do if "%%i" "http" (echo %%i%%j !n! >>snap.txt) else set n=%%j endlocal :#整型快照 del tmp.txt :#删除临时文件 :goto if not exist snap_old.txt cls && echo 第一次建立快照文件 snap^.txt^,请再次运行snap^&compare^.cmd获取文件差异 && pause && goto end :#判断是否存在对比快照,如不存在则不进行差异比较 :compare findstr /n "." snap.txt >tmp1.txt findstr /n "." snap_old.txt >tmp2.txt :#为snap文本加入行号 for /l %%i in (2,1,100) do findstr /r "^%%i:" tmp1.txt tmp2.txt >>tmp3.txt :#以行号为序合并tmp文件 findstr /r "1:" tmp*.txt >>差异.txt :#添加时间戳 setlocal ENABLEDELAYEDEXPANSION for /f "tokens=1* delims=:" %%i in (tmp3.txt) do if %%i tmp1.txt (set n=%%j) else (if %%j neq !n! echo %%j>>差异.txt) endlocal :#比较文本,计算差异行及行号 del tmp*.txt :#清理临时文件 cls && echo 完成差异比较,请查看"差异.txt" && pause end: *两行并一行,相似文本比较 5. cmd cmd下的一些文件处理: 1.保持文件夹结构,copy特定大小,时间,类型文件 2.保持文件夹结构,copy文件名,内容空 3.按文件数量移动文件到目标目录 4.copy某层(3..4..5)子目录下的文件到目标路径 5.删除文件夹中非某扩展名(如txt)的文件 6.copy不同文件夹下的同名文件到目标文件夹 7.同一文件copy到所有子文件夹中 8.处理所有扩展名为e??且不是exe的文件 9.每个文件生成一个同名文件夹,然后把各个文件拷贝到同名文件夹中 10.删除空文件夹 1.保持文件夹结构,copy特定大小,时间,类型文件 #特定类型 xcopy /s/y *.exe 目标路径 *很多单独的命令(dir;xcopy等)自身就富有变化,善用之 #特定大小 (例如小于50000字节,具体运算符号:EQU - 等于 NEQ - 不等LSS - 小于 LEQ - NEQ - 不等于) for /r %i in (*.*) do if %~zi lss 50000 xcopy /s "%i" 目标路径"%~pi" *出动循环武器for命令,可与众多命令搭配使用,例如if,findstr,echo等等 *这里用它枚举子文件夹下的文件,%~zi扩冲为文件大小,交给if命令进行比较 运算,成功后xcopy至目标路径并copy文件夹 *for命令执行顺序)输入,for枚举,do...爱干吗干嘛 #特定时间 例:拷贝特定时间(2005-04-19)的文件,以下内容保存为.bat文件执行 代码: setlocal ENABLEDELAYEDEXPANSION for /r %%i in (*.*) do set dd=%%~ti && if "!dd:~0,8!" "05-04-19" xcopy /s "%%i" 目标路径"%%~pi" endlocal *同上一条,还是for,if,xcopy,由于不能直接对for变量%~ti进行%~ti:~0,8这 样的扩展,变通一下,set给普通变量,再做扩展 *%var~:0,8%扩展的说明:两个数字表示偏移量和长度,具体参看set /? *关于ENABLEDELAYEDEXPANSION延迟环境变量扩充,参看set /?,有实例说明 ----------------------------------------------- 2.保持文件夹结构,copy文件名,内容空 xcopy /t/s *.* 目标路径 for /r %i in (*.*) do echoc >目标路径"%~pnxi" *xcopy /t/s建立镜象文件夹,for /r in (*.*)枚举子文件夹中的文件,利用 echoc的bug,写入0字节文件 ----------------------------------------------- 3.按文件数量移动文件到目标文件夹,以下内容保存为.bat文件执行 代码: setlocal ENABLEDELAYEDEXPANSION set /a n=0 :loop set /a n=n+1 md 文件夹%n% for %%i in (*.*) do move "%%i" 文件夹%n% & dir 文件夹%n% | findstr /c:"100 个文件" && goto loop endlocal *需求将源文件夹中的文件,每100个移动至文件夹1..2..3 *for (*.*) do move一个 && 查找是否有100个了 && 找到跳出去,移动下 100个 ----------------------------------------------- 4.copy某层(3..4..5)子目录下的文件到目标路径 #复制第3层文件夹下的文件到目标路径 dir /s/b/a:d >d.txt for /f "tokens=1-4 delims=\" %i in (d.txt) do echo n | xcopy /e "%i\%j\%k\%l" 目标路径 *dir 列出没有标题信息或摘要的子文件夹,并重定向到d.txt *for /f ..(d.txt),分析d.txt,交xcopy复制 *也可以直接用for /f ..('dir /s/b/a:d') do dir输出会被抓进内存,当作 文件分析。分两行写主要是考虑到文件夹复杂时的脚本效率 ----------------------------------------------- 5.删除文件夹中非某扩展名(如txt)的文件 for /f "delims=/" %i in ('dir /b/s *.*') do dir /b/s *.txt | find "%i" || del "%i" *抓dir *.*的输出,在dir *.txt输出中查找,没找到则不是txt文件,删除之 *可扩充为非txt+jpg+gif的文件,不会眼花了 ----------------------------------------------- 6.copy不同文件夹下的同名文件到目标文件夹 文件夹1下面有一个文件123.jpg 文件夹2下面也有一个文件123.jpg,文件名相同,内容不同 文件夹3下面也有一个文件123.jpg,文件名相同,内容不同 …… 我想搜索所有的文件123.jpg,copy到一个目标文件夹下,但是我用搜索->复 制,出现后者覆盖前者的问题,只能保留一个文件123.jpg,有没有 办法把这些同名文件拷贝到相同文件夹下?或者是说如何自动重命名搜索到的 文件? dir /s/b 123.jpg | find /n "123.jpg" >temp.txt for /f "tokens=1,2 delims=[]" %i in (temp.txt) do copy "%j" d:\123- "%i".jpg *枚举所有123.jpg文件的完整路径,并加上行号重定向到temp.txt *for /f () do copy 同时重命名为123_行号.jpg,行号不会重复,利用一下 ----------------------------------------------- 7.同一文件copy到所有子文件夹中 for /r %a in (.) do xcopy /y filename "%~pa" *for /r ..(.) do 只枚举文件夹 ----------------------------------------------- 8.处理所有扩展名为e??且不是exe的文件 for %i in (*.e??) do if /i "%~xi" neq ".exe" echo %i ----------------------------------------------- 9.每个文件生成一个同名文件夹,然后把各个文件拷贝到同名文件夹中 for %i in (*.*) do md "%~ni" && copy %i "%~ni" ------------------------------------------------ 10.删除空文件夹 for /l %a in (1,1,9) do for /r %i in (.) do rd %~si 6. cmdhtm list.rar 1.rar 7. cmd cmd一些其他应用 1.快速建用户和共享文件夹 2.让服务器在空闲时自动关机或休眠 3.通过FTP自动备份文件 4.扫描一个网段.用for和ping.然后得到存活主机把结果存为ip和ip之间用,隔 开 5.DOS下文件列表按文件名长度递增排列 6.远程关机 1.快速建用户和共享文件夹 又要给学生机房装机了 因为现在有这样的要求: 在教师上加用户 (A1、A2、……A7、B1……H7)(对应学生机) 在教师机上建目录共享 (要对应机器.........) 就是要建A1目录给A1那台机用。 好繁啊,有什么好的介绍吗? for %i in (a b c d e f h) do for /l %j in (1,1,7) do echo %i%j >>name.txt :#构造序号文件 for /f %i in (name.txt) do net user %i %i /add :#天家用户 for /f %i in (name.txt) do md %i :#建目录 for /f %i in (name.txt) do net share %i=盘符:\%i :#共享目录 for /f %i in (name.txt) do cacls \%i /g %i:f administrator:f :#配置权限,一路y回车,即可 *有for不繁 --------------------------------------------------------------- 2.让服务器在空闲时自动关机或休眠 单位有一局域网,由于win2000的服务器代理上网,内网IP:192.168.0.* 因大家不定时上网,一般在后半夜便无人再使用网络,但也不能搞一刀切,不 能设定某个时间自动关机,现求一软件,能自动检测内网有无人开机,如果发 现在0点后,半个 小时无人上网,服务器则自动关机(或休眠),我发现 poweroff软件无法实现这个功能。希望大家帮忙。 run.bat #计划任务 0:30分执行这个bat。每30分钟重复执行.注意别ping了 服务器,没测试过,不太可靠 以下内容保存为.bat文件执行 代码: del reply.txt echo 关机日志 > reply.txt for /l %%i in (2,1,254) do ping -n 1 192.168.0.%%i | find "Reply" >>reply.txt find "Reply" reply.txt || shutdown --------------------------------------------------------------- 3.通过FTP自动备份文件 机器 A D:\\aaa\a\ ——》a.rar D:\\bbb\ ————》b.rar 每 2个小时自动生成一个RAR文件,存放到 D:\\bak\日期\时间\ 目录下 (D:\\bak\2005-01-04\02.00\)然后自动通过FTP传送到 机器B(专用备份机 器) 请问谁能帮忙写个脚本 谢谢。 或者把压缩过程省略,直接传送文件夹也可以 ?传送目录?flashfxp啊 以下内容保存为.bat文件执行 代码: @echo off path=%path%;c:\program files\winrar :rar set tdate=%date:~4,10% set ttime=%time:~0,2% mkdir "d:\bak\%tdate%\%ttime%" rar a -r "d:\bak\%tdate%\%ttime%\a.rar" d:\aaa\*.* rar a -r "d:\bak\%tdate%\%ttime%\b.rar" d:\bbb\*.* :ftp echo open ftp.hitme.com >ftp.txt echo hitme >>ftp.txt echo password >>ftp.txt echo bin >>ftp.txt echo hash >>ftp.txt echo prompt >>ftp.txt echo cd bak >>ftp.txt echo lcd "d:\bak\%tdate%\%ttime%" >>ftp.txt echo mkdir %tdate% >>ftp.txt echo mkdir %tdate%/%ttime% >>ftp.txt echo cd %tdate%/%ttime% >>ftp.txt echo mput *.* >>ftp.txt echo cd /bak >>ftp.txt echo quit >>ftp.txt ftp -s:ftp.txt *echo 构造ftp.txt,利用了系统变量%date%,%time%的扩充形式 --------------------------------------------------------------- 4.扫描一个网段.用for和ping.然后得到存活主机把结果存为ip和ip之间用,隔 开 for /l %i in (1,1,254) do @echo connecting 192.168.1.%i && @(for /f "tokens=1,3 skip=2 delims=: " %j in ('ping 192.168.1.%i') do @if '%j' 'Reply' @find "192.168.1.%i" list.txt > nul 2>nul || @echo %k>>list.txt && @echo 192.168.1.%i connected) *code by su99 *单行精品 --------------------------------------------------------------- 5.DOS下文件列表按文件名长度递增排列 如果一个目录里面有如下四个文件(当然,实际中文件数量和文件名是随机的) 1.txt,2.txt,10.txt,20.txt 在DOS下要如何使用如何才能让他们按 1.txt 2.txt 10.txt 20.txt 输出,而非 1.txt 10.txt 2.txt 20.txt 输出? 我用的系统是xp~多谢大家~ for /l %a in (1,1,20) do @(if exist "%a.txt" echo %a.txt) *思路是穷举。前提是文件名有一定规律:除了数字外的部分要一样,如果是 abc1.txt, xyz10.txt这样乱来,这个方法就不管用了(严格说,如果是有限 个不同的pattern,仍然可以做到,不过麻烦一些) *code by su99 or list.bat,以下内容保存为.bat文件执行 代码: @echo off set t=.... :loop set t=%t%. dir /b /a:-d | findstr /r "^%t%$" if "%t%" "........................." goto end goto loop :end *findstr/r "^.....$过滤排序 --------------------------------------------------------------- 6.远程批量关机,以下内容保存为.bat文件执行 代码: for /l %%i in (1,1,254) do @(arp -d & ping 192.168.3.%%i -n 1 -w 100 & arp -a | find "00-00-00-00-00-00" > nul || shutdown -m \\192.168.3.%%i -s -f) *关闭了icmp,照关 8. cmd cmd中一些符号的说明: & 最简单的组合命令,作用是连接n个命令,按顺序执行,不管是否有执行失败 。 a & b #依次执行a,b && 组合命令,与&命令不同之处在于,判断是否有执行失败,如失败将不继续执 行剩下的命令。 a && b #a成功,b执行 || 作用与&&相反 a || b #a失败,b执行 连着用a && b || c,表示a成功,则执行b,b失败,则执行c >、>> 输出重定向命令,将命令的输出写入到一个文件中。 区别:>覆盖写入,>>尾部追加写入 echo a>a.txt find /v "" *.txt >list.txt | 管道命令,前一命令的输出作为后一命令的输入,常用于文本过滤操作 dir | find "hitme.exe" 9. cmdUnicode to ASCII TYPE Unicode.txt > ASCII.txt 10. Curl- CURL? 嗯,说来话长了~~~~ 这东西现在已经是苹果机上内置的命令行工具之一了,可见其魅力之一斑 1) 二话不说,先从这里开始吧! curl http://www.yahoo.com 回车之后,www.yahoo.com 的html就稀里哗啦地显示在屏幕上了~~~~~ 2) 嗯,要想把读过来页面存下来,是不是要这样呢? curl http://www.yahoo.com > page.html 当然可以,但不用这么麻烦的! 用curl的内置option就好,存下http的结果,用这个option: -o curl -o page.html http://www.yahoo.com 这样,你就可以看到屏幕上出现一个下载页面进度指示。等进展到100%,自然 就OK咯 3) 什么什么?!访问不到?肯定是你的proxy没有设定了。 使用curl的时候,用这个option可以指定http访问所使用的proxy服务器及其 端口: -x curl -x 123.45.67.89:1080 -o page.html http://www.yahoo.com 4) &nbs |
请发表评论