• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

hitme批处理集合

原作者: [db:作者] 来自: [db:来源] 收藏 邀请



        此文本文档由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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Norton Ghost批处理命令用法详细介绍发布时间:2022-02-03
下一篇:
for语句中的几种分隔符形式发布时间:2022-02-03
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap