• Dos命令大全


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


             myhref="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:\aaaa ——》a.rar 


             D:\bbb ————》b.rar 


             每 2个小时自动生成一个RAR文件,存放到 D:\bak日期时间 目录下 


              (D:\bak2005-01-04�2.00)然后自动通过FTP传送到 机器B(专用备份机 


             器) 


             请问谁能帮忙写个脚本 谢谢。 或者把压缩过程省略,直接传送文件夹也可以 


             ?传送目录?flashfxp啊 


             以下内容保存为.bat文件执行 


               代码: 


               @echo off 


               path=%path%;c:program fileswinrar 


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