12
返回列表 发新帖
楼主: Lepao

☆DOS命令集☆

[复制链接]
论坛徽章:
117
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主7段
日期:2012-05-15 15:24:11ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32紫蛋头
日期:2013-03-04 17:00:07优秀写手
日期:2013-12-18 09:29:09
11#
发表于 2002-11-9 19:34 | 只看该作者

转个帖子

一.for命令格式
对一组文件中的每个文件运行指定的命令。
可以在批处理程序中或直接从命令提示符使用 for 命令。
要在批处理程序中使用 for 命令,请使用以下语法:

for %%variable in (set) docommand [command-parameters]

要在命令提示符下使用 for,请使用以下语法: (区别就是在于变量前的%)

for %variable in (set) do command [command-parameters]
参数
%%variable 或 %variable

代表可替换的参数。for 命令使用在 set 中指定的每个文本字符串替换 %%variable(或 %variable),直到此命令(在command-parameters 中指定)处理所有的文件为止。使用 %% variable 在批处理程序中执行 for 命令。使用 % variable

通过命令提示符执行 for 命令。变量名区分大小写。

(set)
指定要用指定的命令处理的一个或多个文件或文本字符串。需要括号。
command
指定要在指定的 set 所包含的每个文件上执行的命令。
command-parameters

指定要用于指定命令(如果指定的命令要使用任何参数或开关)的任何参数或开关。

二.for 命令的其他形式
如果启用了命令扩展,将支持如下 for 命令的其他格式:
只限于目录

for /d [%% | %]variable in (set) docommand [command-parameters]
如果 set 包含通配符(* 和 ?),则指定与目录名匹配,而不是文件名。

递归
for /r [[drive :]path] [%% | %]variable in (set) docommand [command-parameters]

进入根目录树[drive:]path,在树的每个目录中执行 for 语句。如果在 /r 后没有指定目录,则假定为当前目录。如果

set 只是一个句号 (.) 字符,则只列举目录树。

迭代
for /l [%% | %]variable in (start,step,end) do command [command-parameters]

集合是一系列按步长量划分的、从头到尾的数字。这样,(1,1,5) 将生成序列 1 2 3 4 5,而 (5,-1,1) 将生成序列 (5 4 3 2 1)。

文件解析
for /f ["options"] [%% | %]variable in (filenameset) do command [command-parameters]
for /f ["options"] [%% | %]variable in ("literal string" do command[command-parameters]
for /f ["options"] [%% | %]variable in (‘command‘) do command [command-parameters]

或者,如果出现 usebackq 选项:
for /f ["options"] [%% | %]variable in (filenameset) do command [command-parameters]
for /f ["options"] [%% | %]variable in (‘literal string‘) do command [command-parameters]
for /f ["options"] [%% | %]variable in (`command`) docommand [command-parameters]

三.for使用范例

显示目录中的文件
假定要使用 type 命令显示当前目录中扩展名为 .doc 或 .txt 的所有文件内容。为此,为了使用可替换变量 %f,请在命

令提示符后键入以下命令:

for %f in (*.doc *.txt) do type %f

在此范例中,当前目录中扩展名为 .doc 或 .txt 的每个文件都被替代为变量 %f ,直到每个文件的内容都显示为止。要在

批处理文件中使用该命令,只需使用 %%f 替换 %f 的事件。否则,windows 2000 将忽略变量并显示错误信息。

重定向输出到打印机

windows 2000 支持在指定命令中使用的命令开关、管道和重定向。例如,要将上例中的输出重定向到 prn(默认的打印机端口),可以键入下面的命令:
for %f in (*.doc *.txt) do type %f >; prn:

解析文件
要分析文件并忽略注释行,可以使用:
for /f "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k
这将解析 myfile.txt 文件的每一行,忽略以分号开头的行,将第二和第三个令牌环传递到 for 正文中,令牌环通过逗号和/或空格分隔。注意:for 语句引用 %i 以获得第二个令牌,引用 %j 以获得第三个令牌,引用 %k 以获得第三个令牌之后其余的全部令牌。对于包含空格的文件名,必须在文件名两端加上双引号。为了以此方式使用双引号,还需要使用 usebackq 选项,否则双引号将被解释为定义了要解析的文字字符串。
%i 在 for 语句中明确声明,并且 %j 和 %k 使用 tokens= option 隐含声明。如果它不会导致尝试声明高于字母“z”或“z”的某个变量,使用 tokens= 行可以指定最多 26 个标记。
记住,for 变量名区分大小写、全局的,并且每次总体不超过 52 个是活动的。
解析字符串
也可以对相邻的字符串使用 for /f 分析逻辑,方法是使括号之间的 filenameset 为一个用单引号引起来的字符串。将它当作文件的单行输入并进行解析。
解析输出
最后,可以使用 for /f 命令来对命令的输出结果进行解析。通过使 filenameset 在反引字符串的括号之间来执行此操作

。将它作为命令行,此命令被传递给子 cmd.exe 并将输出捕获到内存并进行解析,就象它是一个文件一样。因此,下面的

范例:
for /f "usebackq delims==" %i in (`set`) do @echo %i
这将列举当前环境中的环境变量名。

四.针对网络探测时使用for命令
1. for /f “tokens=1,2*” %i in (filename.txt) do net use \\target\ipc$ %i /u:%j
呵呵,首先/f的参数的含意是解析文件的意思。这将解析 filename.txt 文件的每一行,将第一和第二个令牌环传递到 for 正文中,令牌环通过逗号和/或空格分隔。注意:for 语句引用 %i 以获得第一个令牌,引用 %j 以获得第二个令牌。(注:我也不大明白令牌在这具体意思,不过可以确定的就是第一个令牌就是每行的第一个字符窜,第二个令牌就是用空格分开的第二个字符窜。呵呵,至于*的意思是这样的,在令牌 = 字符串中最后一个字符是星号,则将分配附加的变量,并在解析最后一个令牌后在行上接收剩余的文本。当然如果txt文本的格式如下,只有每行只有两个字符窜的话就可以省去了。)
filename.txt的内容格式如下:
password username
password administrator
password administrator
password administrator
in ()里添写上需要解析的文本文件名。
do后面则添加需要执行的命令如net use 、net user等。
(是不是有点对administrator暴力跑ipc%,获得密码的味道啊?呵呵,就是字典做的有点累。)

2. for /l %i in(1,1,254) do net use \\x.x.x.%i\ipc$ “” /user:“”
/l这个参数是用来控制迭代的。
in()里的集合是一系列按步长量划分的、从头到尾的数字。这样,(1,1,5) 将生成序列 1 2 3 4 5,而 (5,-1,1) 将生成序列 (5 4 3 2 1)。
do 后的用法同上。看看也能明白意思了吧。

使用道具 举报

回复
论坛徽章:
35
操作系统板块每日发贴之星
日期:2005-04-20 01:01:42生肖徽章2007版:猪
日期:2009-11-21 17:03:232009日食纪念
日期:2009-07-22 09:30:00生肖徽章2007版:兔
日期:2009-05-10 11:04:35生肖徽章2007版:狗
日期:2009-03-23 12:10:08生肖徽章2007版:蛇
日期:2009-03-18 08:59:54生肖徽章2007版:牛
日期:2009-01-31 21:27:19体育版块博采纪念徽章
日期:2008-10-06 11:55:58奥运会纪念徽章:艺术体操
日期:2008-07-30 17:45:44奥运会纪念徽章:举重
日期:2008-07-15 13:28:35
12#
发表于 2002-11-18 12:20 | 只看该作者
good

使用道具 举报

回复
论坛徽章:
117
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主7段
日期:2012-05-15 15:24:11ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32紫蛋头
日期:2013-03-04 17:00:07优秀写手
日期:2013-12-18 09:29:09
13#
发表于 2002-11-25 22:57 | 只看该作者

tlist命令

tlist命令

这是Windows2000 ResourceKit中提供的工具,很有用,给大家简单介绍一下这个命令的用法
1.系统帮助
C:\>tlist /?
Microsoft (R) Windows NT (TM) Version 5.1 TLIST
Copyright (C) Microsoft Corp. 1981-1999

usage: TLIST <<-m <pattern>> | <-t> | <pid> | <pattern> | <-p <processname>>>
           [options]:
           -t
              Print Task Tree

           <pid>
              List module information for this task.

           <pattern>
              The pattern can be a complete task
              name or a regular expression pattern
              to use as a match.  Tlist matches the
              supplied pattern against the task names
              and the window titles.

           -m <pattern>
              Lists all tasks that have DLL modules loaded
              in them that match the given pattern name

           -s
              Show services active in each process.

           -p <processname>
              Returns the PID of the process specified or -1
              if the specified process doesn't exist.  If there
              are multiple instances of the process running only
              the instance with the first PID value is returned.

2. -t参数

-t参数以树的形式列出了进程结构包括进程号

C:\>tlist -t
System Process (0)
System (8)
  SMSS.EXE (160)
    CSRSS.EXE (184)
    WINLOGON.EXE (204) NetDDE Agent
      SERVICES.EXE (232)
        svchost.exe (400)
        svchost.exe (444)
        spoolsv.exe (488)
        msdtc.exe (520)
        inojobsv.exe (636)
        LLSSRV.EXE (664)
        mdm.exe (692)
        mstask.exe (756) SYSTEM AGENT COM WINDOW
        SkSockServer.ex (808)
        stisvc.exe (912)
        svchost.exe (940) ModemDeviceChange
        ums.exe (960)
          init.exe (980)
        WinMgmt.exe (1012)
        mspmspsv.exe (1028)
        dfssvc.exe (1052)
        svchost.exe (1088)
      LSASS.EXE (244)
      taskmgr.exe (1592) Windows 任务管理器
inetd.exe (1340)
at.svc (1444)
explorer.exe (640) Program Manager
  rundll32.exe (1656) CnsMain
  CTFMON.EXE (916)
  msnmsgr.exe (524) Animated BMP Sequence
  realmon.exe (888) KILL 实时管理器
  Uedit32.exe (1736) UltraEdit-32 - [E:\inittest.txt]
  PLSQLDev.exe (1528) PL/SQL Developer - eqsp@hhtest
  mstsc.exe (1892) CB Viewer Window
  mstsc.exe (1908)
  MyIE.exe (1700)
    pyintau.exe (296) PYJJ210INTAU
  CMD.EXE (1880) 命令提示符 - tlist -t
    tlist.exe (1472)
conime.exe (1716)

然后我们Kill个进程试试看

C:\>kill 1736
process Uedit32.exe (1736) - 'UltraEdit-32 - [E:\inittest.txt]' killed

C:\>tlist -t
System Process (0)
System (8)
  SMSS.EXE (160)
    CSRSS.EXE (184)
    WINLOGON.EXE (204) NetDDE Agent
      SERVICES.EXE (232)
        svchost.exe (400)
        svchost.exe (444)
        spoolsv.exe (488)
        msdtc.exe (520)
        inojobsv.exe (636)
        LLSSRV.EXE (664)
        mdm.exe (692)
        mstask.exe (756) SYSTEM AGENT COM WINDOW
        SkSockServer.ex (808)
        stisvc.exe (912)
        svchost.exe (940) ModemDeviceChange
        ums.exe (960)
          init.exe (980)
        WinMgmt.exe (1012)
        mspmspsv.exe (1028)
        dfssvc.exe (1052)
        svchost.exe (1088)
      LSASS.EXE (244)
      taskmgr.exe (1592) Windows 任务管理器
inetd.exe (1340)
at.svc (1444)
explorer.exe (640) Program Manager
  rundll32.exe (1656) CnsMain
  CTFMON.EXE (916)
  msnmsgr.exe (524) Animated BMP Sequence
  realmon.exe (888) KILL 实时管理器
  PLSQLDev.exe (1528) PL/SQL Developer - eqsp@hhtest
  mstsc.exe (1892) CB Viewer Window
  mstsc.exe (1908)
  MyIE.exe (1700)
    pyintau.exe (296) PYJJ210INTAU
  CMD.EXE (1880) 命令提示符 - tlist -t
    tlist.exe (1756)
conime.exe (1716)

看这和Unix下是不是差不多了,很多事情我们都可以在命令行下完成了.

3. -s参数

这个参数按进程显示.详细列出每个进程里包含的服务.

看看这个参数的输出

C:\>tlist -s
   0 System Process
   8 System
160 SMSS.EXE
184 CSRSS.EXE       Title:
204 WINLOGON.EXE    Title: NetDDE Agent
232 SERVICES.EXE    Svcs:  

Alerter,AppMgmt,Browser,Dhcp,dmserver,Dnscache,Eventlog,lanmanserver,lanmanworkstation,LmHts,Messenger,PlugPlay,ProtectedStor

age,seclogon,TrkWks,Wmi
244 LSASS.EXE       Svcs:  SamSs
400 svchost.exe     Svcs:  RpcSs
444 svchost.exe     Svcs:  EventSystem,Irmon,Netman,NtmsSvc,RasMan,SENS,SharedAccess
488 spoolsv.exe     Svcs:  Spooler
520 msdtc.exe       Svcs:  MSDTC
636 inojobsv.exe    Svcs:  KILL Anti-Virus Server
664 LLSSRV.EXE      Svcs:  LicenseService
692 mdm.exe         Svcs:  MDM
756 mstask.exe      Svcs:  Schedule
808 SkSockServer.ex Svcs:  SkServer
912 stisvc.exe      Svcs:  StiSvc
940 svchost.exe     Svcs:  TapiSrv
960 ums.exe         Svcs:  UWIN_MS
980 init.exe
1012 WinMgmt.exe     Svcs:  WinMgmt
1028 mspmspsv.exe    Svcs:  WMDM PMSP Service
1052 dfssvc.exe      Svcs:  Dfs
1088 svchost.exe     Svcs:  BITS
1340 inetd.exe
1444 at.svc
640 explorer.exe    Title: Program Manager
1656 rundll32.exe    Title: CnsMain
916 CTFMON.EXE      Title:
524 msnmsgr.exe     Title: Animated BMP Sequence
888 realmon.exe     Title: KILL 实时管理器
1592 taskmgr.exe     Title: Windows 任务管理器
1716 conime.exe      Title:
1528 PLSQLDev.exe    Title: PL/SQL Developer - eqsp@hhtest
1892 mstsc.exe       Title: CB Viewer Window
1908 mstsc.exe
1700 MyIE.exe        Title:
296 pyintau.exe     Title: PYJJ210INTAU
1880 CMD.EXE         Title: 命令提示符 - tlist -s
1756 notepad.exe     Title: Tlist.txt - 记事本
1752 tlist.exe

C:\>

典型的我们可以看到svhost.exe里面包含了不同的服务,多个svhost.exe管理不同的服务组.

引用一段关于svhost.exe的解释:
 Svchost.exe是一个很普通的利用dll动态链接库来运行服务的程序,它位于system32目录下。在计算机启动时,它将读取注册表中有关服务

的部分,然后建立需要启动的服务列表。在同一时刻,可能有多个Svchost.exe在同时运行,每个Svchost.exe中可能包含一个或一组服务,同

一组内的每个服务都可以在一个Svchost.exe开始运行时在同等的条件下同时启动。说白一点,之所以要把若干个服务作为一组放在同一个

Svchost.exe中来运行,目的就是使这些服务能够更好的被控制和调试。

  Svchost.exe组的确定是位于注册表以下这个键值之中,HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost

,这里的每一项就是一组服务,也就是大家在任务管理器中看到的一个“Svchost.exe”。每一个REG_MULTI_ SZ中的值就是一个服务组,一个

组中可能只有一个服务,也有可能有若干个服务。到底哪些服务是属于同一个组,那些服务是独立运行的?您可以在这个键值中找到答案,H

KEY_LOCAL_MACHINE\System\CurrentControlSet\Services。

4.说明

 随便写写,只是自己觉得好玩而已.附件是两个工具kill和tlist两个命令包含其中.如果有兴趣,下载后解压到系统目录即可.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

使用道具 举报

回复
论坛徽章:
117
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主7段
日期:2012-05-15 15:24:11ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32紫蛋头
日期:2013-03-04 17:00:07优秀写手
日期:2013-12-18 09:29:09
14#
发表于 2002-12-7 18:00 | 只看该作者
Find命令的用法:

使用Oracle的时候常常想,在NT上类似于UNIX里的grep的命令是什么呢?
查了一下,其实find命令就可以实现这个类似的功能。



1.系统帮助

C:\>find /?
在文件中搜索字符串。

FIND [/V] [/C] [/N] [/I] "string" [[drive:][path]filename[ ...]]

  /V        显示所有未包含指定字符串的行。
  /C        仅显示包含字符串的行数。
  /N        显示行号。
  /I        搜索字符串时忽略大小写。
  "string"  指定要搜索的文字串,
  [drive:][path]filename
            指定要搜索的文件。

如果没有指定路径,FIND 将搜索键入的或者由另一命令产生的文字。

2.举例
/N 参数显示行号

C:\oracle\RDBMS\ADMIN>dir *.lis
驱动器 C 中的卷是 本地磁盘
卷的序列号是 402A-3A7E

C:\oracle\RDBMS\ADMIN 的目录

2002-11-07  22:41                2,578 spauto.lis
2002-11-07  22:29                  204 spcpkg.lis
2002-11-07  22:29                2,276 spctab.lis
2002-11-07  22:28                2,630 spcusr.lis
2002-11-07  22:28                7,316 spdtab.lis
               5 个文件         15,004 字节
               0 个目录    484,114,432 可用字节

C:\oracle\RDBMS\ADMIN>find /N "error" spctab.lis

---------- SPCTAB.LIS
[336]SPCTAB complete. Please check spctab.lis for any errors.

C:\oracle\RDBMS\ADMIN>find /N "error" spcpkg.lis

---------- SPCPKG.LIS
[13]SPCPKG complete. Please check spcpkg.lis for any errors.

C:\oracle\RDBMS\ADMIN>find /N "ORA-" spdtab.lis

---------- SPDTAB.LIS
[3]ORA-00900: 无效 SQL 语句
[6]ORA-01432: 要删除的公用同义词不存在
[9]ORA-02289: 序列(号)不存在
[12]ORA-01432: 要删除的公用同义词不存在
[15]ORA-00942: 表或视图不存在
[18]ORA-01432: 要删除的公用同义词不存在
[21]ORA-00942: 表或视图不存在
[24]ORA-01432: 要删除的公用同义词不存在

在UNIX下,我们要用grep命令:

$ grep ORA- *.lis
spdtab.lis:ORA-00900: 无效 SQL 语句
spdtab.lis:ORA-01432: 要删除的公用同义词不存在
spdtab.lis:ORA-02289: 序列(号)不存在
spdtab.lis:ORA-01432: 要删除的公用同义词不存在
spdtab.lis:ORA-00942: 表或视图不存在
spdtab.lis:ORA-01432: 要删除的公用同义词不存在
spdtab.lis:ORA-00942: 表或视图不存在
spdtab.lis:ORA-01432: 要删除的公用同义词不存在

同样在NT下,find命令也支持多个文件输入

C:\oracle\RDBMS\ADMIN>find "ORA-" *.lis

---------- SPAUTO.LIS

---------- SPCPKG.LIS

---------- SPCTAB.LIS

---------- SPCUSR.LIS

---------- SPDTAB.LIS
ORA-00900: 无效 SQL 语句
ORA-01432: 要删除的公用同义词不存在
ORA-02289: 序列(号)不存在
ORA-01432: 要删除的公用同义词不存在
ORA-00942: 表或视图不存在
ORA-01432: 要删除的公用同义词不存在
ORA-00942: 表或视图不存在
ORA-01432: 要删除的公用同义词不存在

看,基本上达到了同样的效果。

2.管道和重定向

通过使用管道和重定向,find和其它命令结合可以得到其它你想要的效果。

假定需要 find 命令搜索硬盘,以查找并显示在驱动器 C 上包含字符串“CPU”的文件名要执行该操作,可以使用管道 (|) 将 dir 命令的结果定向到 find,如下例所示:

dir c:\ /s /b | find "CPU"

因为 find 搜索区分大小写并且 dir 产生的输出是大写的,所以必须用大写字母键入“CPU”或者使用带有/i 开关的 find。

随便说说,个人的一点心得,希望对大家有点用处!

使用道具 举报

回复
论坛徽章:
0
15#
发表于 2002-12-7 23:06 | 只看该作者
只有参数和翻译的就别贴上来了

使用道具 举报

回复
论坛徽章:
117
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主7段
日期:2012-05-15 15:24:11ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32紫蛋头
日期:2013-03-04 17:00:07优秀写手
日期:2013-12-18 09:29:09
16#
发表于 2002-12-8 11:33 | 只看该作者
最初由 chineran 发布
[B]只有参数和翻译的就别贴上来了 [/B]


这位兄弟,本人才疏学浅,耽误你时间了。
以后本人不会再写了。

谢谢指点。

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2003-2-24 21:54 | 只看该作者

謝謝

謝謝

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2005-04-26 14:47:45授权会员
日期:2005-10-30 17:05:33管理团队2006纪念徽章
日期:2006-04-16 22:44:45会员2006贡献徽章
日期:2006-04-17 13:46:34
18#
发表于 2003-7-22 22:36 | 只看该作者
最初由 eygle 发布
[B]

这位兄弟,本人才疏学浅,耽误你时间了。
以后本人不会再写了。

谢谢指点。 [/B]



eygle,何必在意,我们都很支持你的,的确你也给了我们很多有用的技术文档,像我这样功底不深的,能学到很多东西。

使用道具 举报

回复
论坛徽章:
0
19#
发表于 2005-9-4 11:31 | 只看该作者

Help Me

各位大侠有没有在PC dos 下使用的date  命令的详解!谢谢!我的QQ:290337666

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表