创新互联DOS手册:hitme批处理集合

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

         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^^ >>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) 

         访问有些网站的时候比较讨厌,他使用cookie来记录session信息。 

         像IE/NN这样的浏览器,当然可以轻易处理cookie信息,但我们的curl呢 

          ?..... 

         我们来学习这个option: -D <-- 这个是把http的response里面的cookie信息 

         存到一个特别的文件中去 

         curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt 

         http://www.yahoo.com 

         这样,当页面被存到page.html的同时,cookie信息也被存到了 

         cookie0001.txt里面了 

         5) 

         那么,下一次访问的时候,如何继续使用上次留下的cookie信息呢?要知道 

         ,很多网站都是靠监视你的cookie信息, 

         来判断你是不是不按规矩访问他们的网站的。 

网页题目:创新互联DOS手册:hitme批处理集合
网址分享:http://www.shufengxianlan.com/qtweb/news30/378480.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联