免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: Lepao
打印 上一主题 下一主题

☆DOS命令集☆ [复制链接]

论坛徽章:
0
11 [报告]
发表于 2002-11-09 19:34 |只看该作者

转个帖子

一.for命令格式 \r\n对一组文件中的每个文件运行指定的命令。 \r\n可以在批处理程序中或直接从命令提示符使用 for 命令。 \r\n要在批处理程序中使用 for 命令,请使用以下语法: \r\n\r\nfor %%variable in (set) docommand [command-parameters] \r\n\r\n要在命令提示符下使用 for,请使用以下语法: (区别就是在于变量前的%) \r\n\r\nfor %variable in (set) do command [command-parameters] \r\n参数 \r\n%%variable 或 %variable \r\n\r\n代表可替换的参数。for 命令使用在 set 中指定的每个文本字符串替换 %%variable(或 %variable),直到此命令(在command-parameters 中指定)处理所有的文件为止。使用 %% variable 在批处理程序中执行 for 命令。使用 % variable \r\n\r\n通过命令提示符执行 for 命令。变量名区分大小写。 \r\n\r\n(set) \r\n指定要用指定的命令处理的一个或多个文件或文本字符串。需要括号。 \r\ncommand \r\n指定要在指定的 set 所包含的每个文件上执行的命令。 \r\ncommand-parameters \r\n\r\n指定要用于指定命令(如果指定的命令要使用任何参数或开关)的任何参数或开关。 \r\n\r\n二.for 命令的其他形式 \r\n如果启用了命令扩展,将支持如下 for 命令的其他格式: \r\n只限于目录 \r\n\r\nfor /d [%% | %]variable in (set) docommand [command-parameters] \r\n如果 set 包含通配符(* 和 ?),则指定与目录名匹配,而不是文件名。 \r\n\r\n递归 \r\nfor /r [[drive :]path] [%% | %]variable in (set) docommand [command-parameters] \r\n\r\n进入根目录树[drive:]path,在树的每个目录中执行 for 语句。如果在 /r 后没有指定目录,则假定为当前目录。如果 \r\n\r\nset 只是一个句号 (.) 字符,则只列举目录树。 \r\n\r\n迭代 \r\nfor /l [%% | %]variable in (start,step,end) do command [command-parameters] \r\n\r\n集合是一系列按步长量划分的、从头到尾的数字。这样,(1,1,5) 将生成序列 1 2 3 4 5,而 (5,-1,1) 将生成序列 (5 4 3 2 1)。 \r\n\r\n文件解析 \r\nfor /f [\"options\"] [%% | %]variable in (filenameset) do command [command-parameters] \r\nfor /f [\"options\"] [%% | %]variable in (\"literal string\" do command[command-parameters] \r\nfor /f [\"options\"] [%% | %]variable in (‘command‘) do command [command-parameters] \r\n\r\n或者,如果出现 usebackq 选项: \r\nfor /f [\"options\"] [%% | %]variable in (filenameset) do command [command-parameters] \r\nfor /f [\"options\"] [%% | %]variable in (‘literal string‘) do command [command-parameters] \r\nfor /f [\"options\"] [%% | %]variable in (`command`) docommand [command-parameters] \r\n\r\n三.for使用范例 \r\n\r\n显示目录中的文件 \r\n假定要使用 type 命令显示当前目录中扩展名为 .doc 或 .txt 的所有文件内容。为此,为了使用可替换变量 %f,请在命\r\n\r\n令提示符后键入以下命令: \r\n\r\nfor %f in (*.doc *.txt) do type %f \r\n\r\n在此范例中,当前目录中扩展名为 .doc 或 .txt 的每个文件都被替代为变量 %f ,直到每个文件的内容都显示为止。要在\r\n\r\n批处理文件中使用该命令,只需使用 %%f 替换 %f 的事件。否则,windows 2000 将忽略变量并显示错误信息。 \r\n\r\n重定向输出到打印机 \r\n\r\nwindows 2000 支持在指定命令中使用的命令开关、管道和重定向。例如,要将上例中的输出重定向到 prn(默认的打印机端口),可以键入下面的命令: \r\nfor %f in (*.doc *.txt) do type %f >; prn: \r\n\r\n解析文件 \r\n要分析文件并忽略注释行,可以使用: \r\nfor /f \"eol=; tokens=2,3* delims=,\" %i in (myfile.txt) do @echo %i %j %k \r\n这将解析 myfile.txt 文件的每一行,忽略以分号开头的行,将第二和第三个令牌环传递到 for 正文中,令牌环通过逗号和/或空格分隔。注意:for 语句引用 %i 以获得第二个令牌,引用 %j 以获得第三个令牌,引用 %k 以获得第三个令牌之后其余的全部令牌。对于包含空格的文件名,必须在文件名两端加上双引号。为了以此方式使用双引号,还需要使用 usebackq 选项,否则双引号将被解释为定义了要解析的文字字符串。 \r\n%i 在 for 语句中明确声明,并且 %j 和 %k 使用 tokens= option 隐含声明。如果它不会导致尝试声明高于字母“z”或“z”的某个变量,使用 tokens= 行可以指定最多 26 个标记。 \r\n记住,for 变量名区分大小写、全局的,并且每次总体不超过 52 个是活动的。 \r\n解析字符串 \r\n也可以对相邻的字符串使用 for /f 分析逻辑,方法是使括号之间的 filenameset 为一个用单引号引起来的字符串。将它当作文件的单行输入并进行解析。 \r\n解析输出 \r\n最后,可以使用 for /f 命令来对命令的输出结果进行解析。通过使 filenameset 在反引字符串的括号之间来执行此操作\r\n\r\n。将它作为命令行,此命令被传递给子 cmd.exe 并将输出捕获到内存并进行解析,就象它是一个文件一样。因此,下面的\r\n\r\n范例: \r\nfor /f \"usebackq delims==\" %i in (`set`) do @echo %i \r\n这将列举当前环境中的环境变量名。 \r\n\r\n四.针对网络探测时使用for命令 \r\n1. for /f “tokens=1,2*” %i in (filename.txt) do net use \\\\target\\ipc$ %i /u:%j \r\n呵呵,首先/f的参数的含意是解析文件的意思。这将解析 filename.txt 文件的每一行,将第一和第二个令牌环传递到 for 正文中,令牌环通过逗号和/或空格分隔。注意:for 语句引用 %i 以获得第一个令牌,引用 %j 以获得第二个令牌。(注:我也不大明白令牌在这具体意思,不过可以确定的就是第一个令牌就是每行的第一个字符窜,第二个令牌就是用空格分开的第二个字符窜。呵呵,至于*的意思是这样的,在令牌 = 字符串中最后一个字符是星号,则将分配附加的变量,并在解析最后一个令牌后在行上接收剩余的文本。当然如果txt文本的格式如下,只有每行只有两个字符窜的话就可以省去了。) \r\nfilename.txt的内容格式如下: \r\npassword username \r\npassword administrator \r\npassword administrator \r\npassword administrator \r\nin ()里添写上需要解析的文本文件名。 \r\ndo后面则添加需要执行的命令如net use 、net user等。 \r\n(是不是有点对administrator暴力跑ipc%,获得密码的味道啊?呵呵,就是字典做的有点累。) \r\n\r\n2. for /l %i in(1,1,254) do net use \\\\x.x.x.%i\\ipc$ “” /user:“” \r\n/l这个参数是用来控制迭代的。 \r\nin()里的集合是一系列按步长量划分的、从头到尾的数字。这样,(1,1,5) 将生成序列 1 2 3 4 5,而 (5,-1,1) 将生成序列 (5 4 3 2 1)。 \r\ndo 后的用法同上。看看也能明白意思了吧。

论坛徽章:
0
12 [报告]
发表于 2002-11-25 22:57 |只看该作者

tlist命令

tlist命令\r\n\r\n这是Windows2000 ResourceKit中提供的工具,很有用,给大家简单介绍一下这个命令的用法\r\n1.系统帮助\r\nC:\\>tlist /?\r\nMicrosoft (R) Windows NT (TM) Version 5.1 TLIST\r\nCopyright (C) Microsoft Corp. 1981-1999\r\n\r\nusage: TLIST <<-m <pattern>> | <-t> | <pid> | <pattern> | <-p <processname>>>\r\n           [options]:\r\n           -t\r\n              Print Task Tree\r\n\r\n           <pid>\r\n              List module information for this task.\r\n\r\n           <pattern>\r\n              The pattern can be a complete task\r\n              name or a regular expression pattern\r\n              to use as a match.  Tlist matches the\r\n              supplied pattern against the task names\r\n              and the window titles.\r\n\r\n           -m <pattern>\r\n              Lists all tasks that have DLL modules loaded\r\n              in them that match the given pattern name\r\n\r\n           -s\r\n              Show services active in each process.\r\n\r\n           -p <processname>\r\n              Returns the PID of the process specified or -1\r\n              if the specified process doesn\'t exist.  If there\r\n              are multiple instances of the process running only\r\n              the instance with the first PID value is returned.\r\n\r\n2. -t参数\r\n\r\n-t参数以树的形式列出了进程结构包括进程号\r\n\r\nC:\\>tlist -t\r\nSystem Process (0)\r\nSystem (\r\n  SMSS.EXE (160)\r\n    CSRSS.EXE (184)\r\n    WINLOGON.EXE (204) NetDDE Agent\r\n      SERVICES.EXE (232)\r\n        svchost.exe (400)\r\n        svchost.exe (444)\r\n        spoolsv.exe (48\r\n        msdtc.exe (520)\r\n        inojobsv.exe (636)\r\n        LLSSRV.EXE (664)\r\n        mdm.exe (692)\r\n        mstask.exe (756) SYSTEM AGENT COM WINDOW\r\n        SkSockServer.ex (80\r\n        stisvc.exe (912)\r\n        svchost.exe (940) ModemDeviceChange\r\n        ums.exe (960)\r\n          init.exe (980)\r\n        WinMgmt.exe (1012)\r\n        mspmspsv.exe (102\r\n        dfssvc.exe (1052)\r\n        svchost.exe (108\r\n      LSASS.EXE (244)\r\n      taskmgr.exe (1592) Windows 任务管理器\r\ninetd.exe (1340)\r\nat.svc (1444)\r\nexplorer.exe (640) Program Manager\r\n  rundll32.exe (1656) CnsMain\r\n  CTFMON.EXE (916)\r\n  msnmsgr.exe (524) Animated BMP Sequence\r\n  realmon.exe (88 KILL 实时管理器\r\n  Uedit32.exe (1736) UltraEdit-32 - [E:\\inittest.txt]\r\n  PLSQLDev.exe (152 PL/SQL Developer - eqsp@hhtest\r\n  mstsc.exe (1892) CB Viewer Window\r\n  mstsc.exe (190\r\n  MyIE.exe (1700)\r\n    pyintau.exe (296) PYJJ210INTAU\r\n  CMD.EXE (1880) 命令提示符 - tlist -t\r\n    tlist.exe (1472)\r\nconime.exe (1716)\r\n\r\n然后我们Kill个进程试试看\r\n\r\nC:\\>kill 1736\r\nprocess Uedit32.exe (1736) - \'UltraEdit-32 - [E:\\inittest.txt]\' killed\r\n\r\nC:\\>tlist -t\r\nSystem Process (0)\r\nSystem (\r\n  SMSS.EXE (160)\r\n    CSRSS.EXE (184)\r\n    WINLOGON.EXE (204) NetDDE Agent\r\n      SERVICES.EXE (232)\r\n        svchost.exe (400)\r\n        svchost.exe (444)\r\n        spoolsv.exe (48\r\n        msdtc.exe (520)\r\n        inojobsv.exe (636)\r\n        LLSSRV.EXE (664)\r\n        mdm.exe (692)\r\n        mstask.exe (756) SYSTEM AGENT COM WINDOW\r\n        SkSockServer.ex (808)\r\n        stisvc.exe (912)\r\n        svchost.exe (940) ModemDeviceChange\r\n        ums.exe (960)\r\n          init.exe (980)\r\n        WinMgmt.exe (1012)\r\n        mspmspsv.exe (1028)\r\n        dfssvc.exe (1052)\r\n        svchost.exe (1088)\r\n      LSASS.EXE (244)\r\n      taskmgr.exe (1592) Windows 任务管理器\r\ninetd.exe (1340)\r\nat.svc (1444)\r\nexplorer.exe (640) Program Manager\r\n  rundll32.exe (1656) CnsMain\r\n  CTFMON.EXE (916)\r\n  msnmsgr.exe (524) Animated BMP Sequence\r\n  realmon.exe (888) KILL 实时管理器\r\n  PLSQLDev.exe (1528) PL/SQL Developer - eqsp@hhtest\r\n  mstsc.exe (1892) CB Viewer Window\r\n  mstsc.exe (1908)\r\n  MyIE.exe (1700)\r\n    pyintau.exe (296) PYJJ210INTAU\r\n  CMD.EXE (1880) 命令提示符 - tlist -t\r\n    tlist.exe (1756)\r\nconime.exe (1716)\r\n\r\n看这和Unix下是不是差不多了,很多事情我们都可以在命令行下完成了.\r\n\r\n3. -s参数\r\n\r\n这个参数按进程显示.详细列出每个进程里包含的服务.\r\n\r\n看看这个参数的输出\r\n\r\nC:\\>tlist -s\r\n   0 System Process\r\n   8 System\r\n 160 SMSS.EXE\r\n 184 CSRSS.EXE       Title:\r\n 204 WINLOGON.EXE    Title: NetDDE Agent\r\n 232 SERVICES.EXE    Svcs:  \r\n\r\nAlerter,AppMgmt,Browser,Dhcp,dmserver,Dnscache,Eventlog,lanmanserver,lanmanworkstation,LmHts,Messenger,PlugPlay,ProtectedStor\r\n\r\nage,seclogon,TrkWks,Wmi\r\n 244 LSASS.EXE       Svcs:  SamSs\r\n 400 svchost.exe     Svcs:  RpcSs\r\n 444 svchost.exe     Svcs:  EventSystem,Irmon,Netman,NtmsSvc,RasMan,SENS,SharedAccess\r\n 488 spoolsv.exe     Svcs:  Spooler\r\n 520 msdtc.exe       Svcs:  MSDTC\r\n 636 inojobsv.exe    Svcs:  KILL Anti-Virus Server\r\n 664 LLSSRV.EXE      Svcs:  LicenseService\r\n 692 mdm.exe         Svcs:  MDM\r\n 756 mstask.exe      Svcs:  Schedule\r\n 808 SkSockServer.ex Svcs:  SkServer\r\n 912 stisvc.exe      Svcs:  StiSvc\r\n 940 svchost.exe     Svcs:  TapiSrv\r\n 960 ums.exe         Svcs:  UWIN_MS\r\n 980 init.exe\r\n1012 WinMgmt.exe     Svcs:  WinMgmt\r\n1028 mspmspsv.exe    Svcs:  WMDM PMSP Service\r\n1052 dfssvc.exe      Svcs:  Dfs\r\n1088 svchost.exe     Svcs:  BITS\r\n1340 inetd.exe\r\n1444 at.svc\r\n 640 explorer.exe    Title: Program Manager\r\n1656 rundll32.exe    Title: CnsMain\r\n 916 CTFMON.EXE      Title:\r\n 524 msnmsgr.exe     Title: Animated BMP Sequence\r\n 888 realmon.exe     Title: KILL 实时管理器\r\n1592 taskmgr.exe     Title: Windows 任务管理器\r\n1716 conime.exe      Title:\r\n1528 PLSQLDev.exe    Title: PL/SQL Developer - eqsp@hhtest\r\n1892 mstsc.exe       Title: CB Viewer Window\r\n1908 mstsc.exe\r\n1700 MyIE.exe        Title:\r\n 296 pyintau.exe     Title: PYJJ210INTAU\r\n1880 CMD.EXE         Title: 命令提示符 - tlist -s\r\n1756 notepad.exe     Title: Tlist.txt - 记事本\r\n1752 tlist.exe\r\n\r\nC:\\>\r\n\r\n典型的我们可以看到svhost.exe里面包含了不同的服务,多个svhost.exe管理不同的服务组.\r\n\r\n引用一段关于svhost.exe的解释:\r\n Svchost.exe是一个很普通的利用dll动态链接库来运行服务的程序,它位于system32目录下。在计算机启动时,它将读取注册表中有关服务\r\n\r\n的部分,然后建立需要启动的服务列表。在同一时刻,可能有多个Svchost.exe在同时运行,每个Svchost.exe中可能包含一个或一组服务,同\r\n\r\n一组内的每个服务都可以在一个Svchost.exe开始运行时在同等的条件下同时启动。说白一点,之所以要把若干个服务作为一组放在同一个\r\n\r\nSvchost.exe中来运行,目的就是使这些服务能够更好的被控制和调试。\r\n\r\n  Svchost.exe组的确定是位于注册表以下这个键值之中,HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Svchost\r\n\r\n,这里的每一项就是一组服务,也就是大家在任务管理器中看到的一个“Svchost.exe”。每一个REG_MULTI_ SZ中的值就是一个服务组,一个\r\n\r\n组中可能只有一个服务,也有可能有若干个服务。到底哪些服务是属于同一个组,那些服务是独立运行的?您可以在这个键值中找到答案,H \r\n\r\nKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services。\r\n\r\n4.说明\r\n\r\n 随便写写,只是自己觉得好玩而已.附件是两个工具kill和tlist两个命令包含其中.如果有兴趣,下载后解压到系统目录即可.

论坛徽章:
0
13 [报告]
发表于 2002-12-07 18:00 |只看该作者
Find命令的用法:\r\n\r\n使用Oracle的时候常常想,在NT上类似于UNIX里的grep的命令是什么呢?\r\n查了一下,其实find命令就可以实现这个类似的功能。\r\n\r\n\r\n\r\n1.系统帮助\r\n\r\nC:\\>find /?\r\n在文件中搜索字符串。\r\n\r\nFIND [/V] [/C] [/N] [/I] \"string\" [[drive:][path]filename[ ...]]\r\n\r\n  /V        显示所有未包含指定字符串的行。\r\n  /C        仅显示包含字符串的行数。\r\n  /N        显示行号。\r\n  /I        搜索字符串时忽略大小写。\r\n  \"string\"  指定要搜索的文字串,\r\n  [drive:][path]filename\r\n            指定要搜索的文件。\r\n\r\n如果没有指定路径,FIND 将搜索键入的或者由另一命令产生的文字。\r\n\r\n2.举例\r\n/N 参数显示行号\r\n\r\nC:\\oracle\\RDBMS\\ADMIN>dir *.lis\r\n 驱动器 C 中的卷是 本地磁盘\r\n 卷的序列号是 402A-3A7E\r\n\r\n C:\\oracle\\RDBMS\\ADMIN 的目录\r\n\r\n2002-11-07  22:41                2,578 spauto.lis\r\n2002-11-07  22:29                  204 spcpkg.lis\r\n2002-11-07  22:29                2,276 spctab.lis\r\n2002-11-07  22:28                2,630 spcusr.lis\r\n2002-11-07  22:28                7,316 spdtab.lis\r\n               5 个文件         15,004 字节\r\n               0 个目录    484,114,432 可用字节\r\n\r\nC:\\oracle\\RDBMS\\ADMIN>find /N \"error\" spctab.lis\r\n\r\n---------- SPCTAB.LIS\r\n[336]SPCTAB complete. Please check spctab.lis for any errors.\r\n\r\nC:\\oracle\\RDBMS\\ADMIN>find /N \"error\" spcpkg.lis\r\n\r\n---------- SPCPKG.LIS\r\n[13]SPCPKG complete. Please check spcpkg.lis for any errors.\r\n\r\nC:\\oracle\\RDBMS\\ADMIN>find /N \"ORA-\" spdtab.lis\r\n\r\n---------- SPDTAB.LIS\r\n[3]ORA-00900: 无效 SQL 语句\r\n[6]ORA-01432: 要删除的公用同义词不存在\r\n[9]ORA-02289: 序列(号)不存在\r\n[12]ORA-01432: 要删除的公用同义词不存在\r\n[15]ORA-00942: 表或视图不存在\r\n[18]ORA-01432: 要删除的公用同义词不存在\r\n[21]ORA-00942: 表或视图不存在\r\n[24]ORA-01432: 要删除的公用同义词不存在\r\n\r\n在UNIX下,我们要用grep命令:\r\n\r\n$ grep ORA- *.lis\r\nspdtab.lis:ORA-00900: 无效 SQL 语句\r\nspdtab.lis:ORA-01432: 要删除的公用同义词不存在\r\nspdtab.lis:ORA-02289: 序列(号)不存在\r\nspdtab.lis:ORA-01432: 要删除的公用同义词不存在\r\nspdtab.lis:ORA-00942: 表或视图不存在\r\nspdtab.lis:ORA-01432: 要删除的公用同义词不存在\r\nspdtab.lis:ORA-00942: 表或视图不存在\r\nspdtab.lis:ORA-01432: 要删除的公用同义词不存在\r\n\r\n同样在NT下,find命令也支持多个文件输入\r\n\r\nC:\\oracle\\RDBMS\\ADMIN>find \"ORA-\" *.lis\r\n\r\n---------- SPAUTO.LIS\r\n\r\n---------- SPCPKG.LIS\r\n\r\n---------- SPCTAB.LIS\r\n\r\n---------- SPCUSR.LIS\r\n\r\n---------- SPDTAB.LIS\r\nORA-00900: 无效 SQL 语句\r\nORA-01432: 要删除的公用同义词不存在\r\nORA-02289: 序列(号)不存在\r\nORA-01432: 要删除的公用同义词不存在\r\nORA-00942: 表或视图不存在\r\nORA-01432: 要删除的公用同义词不存在\r\nORA-00942: 表或视图不存在\r\nORA-01432: 要删除的公用同义词不存在\r\n\r\n看,基本上达到了同样的效果。\r\n\r\n2.管道和重定向\r\n\r\n通过使用管道和重定向,find和其它命令结合可以得到其它你想要的效果。\r\n\r\n假定需要 find 命令搜索硬盘,以查找并显示在驱动器 C 上包含字符串“CPU”的文件名要执行该操作,可以使用管道 (|) 将 dir 命令的结果定向到 find,如下例所示: \r\n\r\ndir c:\\ /s /b | find \"CPU\" \r\n\r\n因为 find 搜索区分大小写并且 dir 产生的输出是大写的,所以必须用大写字母键入“CPU”或者使用带有/i 开关的 find。 \r\n\r\n随便说说,个人的一点心得,希望对大家有点用处!

论坛徽章:
0
14 [报告]
发表于 2002-12-07 23:06 |只看该作者
只有参数和翻译的就别贴上来了

论坛徽章:
0
15 [报告]
发表于 2002-12-08 11:33 |只看该作者
最初由 chineran 发布\r\n[B]只有参数和翻译的就别贴上来了 [/B]
\r\n\r\n这位兄弟,本人才疏学浅,耽误你时间了。\r\n以后本人不会再写了。\r\n\r\n谢谢指点。

论坛徽章:
0
16 [报告]
发表于 2003-07-22 22:36 |只看该作者
最初由 eygle 发布\r\n[B]\r\n\r\n这位兄弟,本人才疏学浅,耽误你时间了。\r\n以后本人不会再写了。\r\n\r\n谢谢指点。 [/B]
\r\n\r\n\r\neygle,何必在意,我们都很支持你的,的确你也给了我们很多有用的技术文档,像我这样功底不深的,能学到很多东西。

论坛徽章:
0
17 [报告]
发表于 2005-09-04 11:31 |只看该作者

Help Me

各位大侠有没有在PC dos 下使用的date  命令的详解!谢谢!我的QQ:290337666
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP