中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [转贴]CMD应用实例 上一主题 | 下一主题
r5288665
新手上路





积分 15
发帖 7
注册 2006-12-28
状态 离线
『楼 主』:  [转贴]CMD应用实例

在cmd下,你可以用一个命令完成在windows下纷繁的操作才完成的任务,
  甚至可以完成在在windows下不可能的完成的任务。
  希望擅长者和爱好者写出你的应用实例。
   
  1.不要命令大全之类的,要的是实例。
  2.自己要测试。
  3.用windows自带的命令及批处理文件,
  4.把命令和结果从cmd下复制,粘贴到这里。

一、来个简单的,可以查看硬盘的剩余空间
  
C:\>for %a in (c: d: e: f:) do @dir %a | find "可用字节"
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]6 个目录  3,373,113,344 可用字节
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]6 个目录  2,259,116,032 可用字节
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]7 个目录  2,656,223,232 可用字节
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]11 个目录 12,217,028,608 可用字节
  
C:\>

二、Change your IP Addreess under CMD
  
@echo off
REM Comment: Tested on Windows 2000 Server English Version.If you want use this script, please replace the Interface name with mine.
  
setlocal
  
set IPAddress=%1
set NetMask=%2
set GateWay=%3
  
if not [%GateWay%]==[] goto :ipwithgw
if [%IPAddress%]==[] goto :usage
if [%NetMask%]==[] goto :c
if %NetMask:~0,3%==255 goto :setall
  
:setall
netsh interface ip set address name = "Local Area Connection" source = static addr = %IPAddress% mask = %NetMask%
goto end
  
:C
netsh interface ip set address name = "Local Area Connection" source = static addr = %IPAddress% mask = 255.255.255.0
goto end
  
:ipwithgw
netsh interface ip set address name = "Local Area Connection" source = static addr = %IPAddress% mask = %NetMask%
netsh interface ip set address name = "Local Area Connection" gateway = %GateWay% gwmetric = 1
goto end
  
:usage
echo Usage of ChangeIP:
echo Changeip IPAddress [NetMask] [Default GateWay]
  
:end
  
ipconfig /all

三、reboot.bat
  
@echo off
setlocal
cd/d %temp%
echo [version] > reboot.inf
set inf=InstallHinfSection DefaultInstall
echo signature=$WINDOWS NT$ >> reboot.inf
echo [defaultinstall] >> reboot.inf
rundll32 setupapi,%inf% 1 %temp%\reboot.inf
del reboot.inf

四、查询主机Hot-Fix的脚本--Patch.vbs
  
winmgmt1 = "winmgmts:{impersonationLevel=impersonate}!//"& ComputerName &""
  Set SPSet = GetObject( winmgmt1 ).InstancesOf ("Win32_OperatingSystem")
  
  WScript.Echo "====================================================="
  WScript.Echo "Computer Operating System Properties for " & ""& ComputerName &""
  WScript.Echo "====================================================="
  
  For each SP in SPSet
   WScript.Echo "Operating System: " & SP.Name
   WScript.Echo "Install Date: " & left (cstr(SP.installdate),4) & "-" & mid (cstr(SP.installdate),5,2) & "-" & mid (cstr(SP.installdate),7,2)
   WScript.Echo "Build Number: " & SP.BuildNumber
   WScript.Echo "Build Type: " & SP.CSDVersion
  next
  
'Sub GetHotfixInfos()  '获取已安装的Hot-Fixes信息
  winmgmt = "winmgmts:{impersonationLevel=impersonate}!//"& ComputerName &""
  Set QFESet = GetObject( winmgmt).InstancesOf ("Win32_QuickFixEngineering")
  WScript.Echo "====================================================="
  WScript.Echo "The following HotFixes have been Installed:"
  For each QFE in QFESet
   WScript.Echo QFE.HotFixID
   WScript.Echo QFE.FixComments
   Wscript.Echo "Please visit http://support.microsoft.com/support/kb/articles/" & left(QFE.HotFixID,4) & "/" & mid(QFE.HotFixID,5,1) & "/" & right(QFE.HotFixID,2) & ".ASP"
   Wscript.Echo QFE.ServicePackInEffect
   Wscript.Echo "-----------------------------------------------------"
  next
'End Sub

五、你是Administrator,另外有一个管理员叫Admin,如果我不想让Admin在资源管理器中设置文件的安全属性,那么我们只要对 %systemroot%system32 shx32.dll进行权限设置,默认情况下,该文件的权限为:
  
BUILTINAdministrators:F
  
Everyone:R
  
BUILTINPower Users:R
  
NT AUTHORITYSYSTEM:F
  
BUILTINUsers:R
  
如果我们运行 cacls %systemroot%/system32/rshx32.dll /d admin
  
那么admin用户登陆到服务器后,在资源管理器中也就无法对文件或者文件夹进行安全设置了。如果我们再把cacls.exe文件也进行权限设置,让admin用户无法访问的话,那他就只能从别的服务器上copy一个cacls.exe来对文件进行权限设置了......

六、查看主机变量的VBS,包括系统、进程、用户等的环境变量
  
Author: joyadam@myrealbox.com
   Date: 2002-1-13 18:34:35
  
'=====================================================
'FileName: envar.vbs
'Usage:  cscript envar.vbs
'Author: joyadam@myrealbox.com
'HomePage: www.sometips.com
'Date:  2001-04-28
'Comment: This Script will query the environments on your machine.
'=====================================================
  
Set shellobj = CreateObject("WScript.Shell")
  
WScript.Echo "System environments variables..."
Wscript.Echo "=================================================="
For Each envvar In shellobj.Environment("SYSTEM")
  WScript.Echo envvar
Next
  
WScript.Echo vbCrLf & "Process environments variables..."
Wscript.Echo "=================================================="
For Each envvar In shellobj.Environment("PROCESS")
  WScript.Echo envvar
Next
  
WScript.Echo vbCrLf & "USER environments variables..."
Wscript.Echo "=================================================="
For Each envvar In shellobj.Environment("USER")
  WScript.Echo envvar
Next
  
WScript.Echo vbCrLf & "VOLATILE environments variables..."
Wscript.Echo "=================================================="
For Each envvar In shellobj.Environment("VOLATILE")
  WScript.Echo envvar
Next

七、Windows 下的“Which”命令
Author: joyadam@myrealbox.com
[$nbsp][$nbsp]Date: 2002-1-13 18:34:21
  
在Linux下,有一个命令叫做which,它可以在Path中寻找某个命令所在的目录并显示出来。
  
Linux下:
  
[adam@isbase adam]$ which ls
  
/bin/ls
  
[adam@isbase adam]$ which rm
  
/bin/rm
  
在NT的Resource Kit中有一个where.exe,他也有相同的功效,不过一套Resource Kit要300美元,在这里我们可以作一个批处理文件来实现这个功能。
  
使用记事本编辑一个which.bat,并将其存放在Winnt目录或者其他Path变量中的目录里,该批处理文件的内容如下:
  
@echo off
  
Rem 检查命令行参数
  
if {%1}=={} goto :Usage
  
for %%i in ({ {/ {-) do if {%1}==%%i?} goto :Usage %%i
  
echo.
  
:Rem 在当前目录检查看是否存在该文件
  
for %%i in (%1) do if exist %%~nx%i (
  
[$nbsp][$nbsp][$nbsp][$nbsp]echo %%~Fi
  
[$nbsp][$nbsp][$nbsp][$nbsp]goto :EOF
  
)
  
:Rem 在Path中检查该文件
  
for %%i in (%1) do (
  
[$nbsp][$nbsp][$nbsp][$nbsp]if exist %%~$PATH:i (
  
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]echo %%~$PATH:i
  
[$nbsp][$nbsp][$nbsp][$nbsp]) else (
  
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]echo Error: %1 不在路径里!!!
  
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]goto :Usage
  
[$nbsp][$nbsp][$nbsp][$nbsp])
  
)
  
goto :EOF
  
:Usage
  
echo.
  
echo WHICH "filename"
  
echo.
  
echo       输入文件明,返回该文件的全路径!
  
echo.
  
我们来对我们的程序作一个测试:
  
Microsoft Windows 2000 [Version 5.00.2195]
  
(C) 版权所有 1985-1998 Microsoft Corp.
  
C:\>which
  
WHICH "filename"
  
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]输入文件明,返回该文件的全路径!
  
C:\>which cmd.exe
  
C:\WINNT\system32\cmd.exe
  
C:\>
  
OK,测试通过!

2007-4-11 20:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
delux3344
新手上路





积分 2
发帖 1
注册 2006-8-21
状态 离线
『第 2 楼』:  

谢谢,收藏先

2007-4-11 23:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: