① mysql命令行增加一列birthday,如何定义字符类型
birthday datetime 或者 timestamps都可以
插入时需要修改表结构 定义还是一样的 alter table 表名称 add column birthday datetime
② 如何提高linux命令行的工作效率
bash命令行浏览编辑支持许快捷键快捷键Ctrl-A光标移命令行始处快捷键Ctrl-E光标移命令行末尾快捷键Ctrl-W直接删除光标前字快捷键Ctrl-K直接删除光标前所字符用Ctrl-Y撤销删除
③ 为什么windows以淘汰命令行为己任
windows并没有以淘汰命令行为己任啊,从win nt开始,命令行就一直伴随着windows,winxp、7、8、10都是基于winnt架构的系统,每个系统都保留了命令行cmd.exe。
比如netstat,tracert,ping之类的命令,telnet之类的工具在windows里面都很依赖命令行。而且在后期的windows系统里,微软还特意增加了一个增强型命令行,powershell,用来实现更强大的管理功能。而且windows 服务器版还有专门的core版本,也就是几乎没有什么图形界面,大多数操作都是通过命令行来实现。
你提的windows淘汰命令行可能只是站在普通桌面用户的角度看,windows桌面版一直力求让普通用户动动鼠标就能实现大多数功能。对于windows server2003、2008、2012之类的服务器版或者windows10来说,如果站在系统集成工程师、系统管理员之类人群的角度,就会觉得windows不但没有淘汰命令行,反而一直在增强命令行的功能。
④ 请问怎么设置 增强属性编辑器
先定义好你想要的明细栏.就是绘图吧..然后点菜单:绘图-块-定义属性弹出窗口在属性中:标记,提示,值,填上(这些在你以后的调入时就是命令行的提示和要输入的值了,在这里只是一个提示和标记而已)搞定之后,在命令行输入:WBLOCK保存块OK!下次调用的时候,插入块,选先前定义的,然后进行编辑填充....其它的都是这个方法..有什么问题,再联系吧...
⑤ DOS中for命令使用详解
for命令应用
以前常觉得DOS的命令行功能太弱,无法象UNIX一样可以用命令行完成非常复杂的操作。实际上,当MS从WIN2K开始将命令行增强后,已经借鉴了相当多UNIX的优点,虽然还无法做到象UNIX那么灵活,但已可完成绝大多数的任务,比如用&&和||连接两个(或更多)命令,由前一个的返回值来决定下一个是否执行,等等。而在这些增强中,最明显的,就是FOR命令。
举个例子,用适当的参数,可用FOR命令将 date /t 的输出 从 "Sat 07/13/2002" 变成你想要的格式,比如, "2002-07-13":
c:>for /f "tokens=2,3,4 delims=/ " %a in ('date /t') do @echo %c-%a-%b
2002-07-13
该例将在(3)中详细说明。
0. 基本应用
简单说,FOR是个循环,可以用你指定的循环范围生成一系列命令。最简单的例子,就是人工指定循环范围,然后对每个值执行指定的命令。例如,想快速报告每个硬盘分区的剩余空间:
for %a in (c: d: e: f do @dir %a | find "bytes free"
将输出:
8 Dir(s) 1,361,334,272 bytes free
15 Dir(s) 8,505,581,568 bytes free
12 Dir(s) 12,975,149,056 bytes free
7 Dir(s) 11,658,854,400 bytes free
用它可以使一些不支持通配符的命令对一系列文件进行操作。在WIN9X中,TYPE命令(显示文件内容)是不支持*.txt这种格式的(WIN2K开始TYPE已支持通配)。遇到类似情况就可以用FOR:
for %a in (*.txt) do type %a
这些还不是FOR最强大的功能。我认为它最强大的功能,表现在以下这些高级应用:
1. 可以用 /r 参数遍历整个目录树
2. 可以用 /f 参数将文本文件内容作为循环范围
3. 可以用 /f 参数将某一命令执行结果作为循环范围
4. 可以用 %~ 操作符将文件名分离成文件名、扩展名、盘符等独立部分
现分别举例说明如下:
1. 用 /r 遍历目录树
当用 *.* 或 *.txt 等文件名通配符作为 for /r 的循环范围时,可以对当前目录下所有文件(包括子目录里面的文件)进行操作。举个例子,你想在当前目录的所有txt文件(包括子目录)内容中查找"bluebear"字样,但由于find本身不能遍历子目录,所以我们用for:
for /r . %a in (*.txt) do @find "bluebear" %a
find 前面的 @ 只是让输出结果不包括 find 命令本身。这是DOS很早就有的功能。和FOR无关。
当用 . 作为循环范围时,for 只将子目录的结构(目录名)作为循环范围,而不包括里面的文件。有点象 TREE 命令,不过侧重点不同。 TREE 的重点是用很漂亮易读的格式输出,而FOR的输出适合一些自动任务,例如,我们都知道用CVS管理的项目中,每个子目录下都会有一个CVS目录,有时在软件发行时我们想把这些CVS目录全部去掉:
for /r . %a in (.) do @if exist %aCVS rd /s /q %aCVS
先用 if exist 判断一下,是因为 for 只是机械的对每个目录进行列举,如果有些目录下面没有CVS也会被执行到。用 if exist 判断一下比较安全。
这种删除命令威力太大,请小心使用。最好是在真正执行以上的删除命令前,将 rd /s /q 换成 @echo 先列出要删出的目录,确认无误后再换回rd /s /q:
for /r . %a in (.) do @if exist %aCVS @echo %aCVS
可能目录中会多出一层 ".",比如 c:projrelease.CVS ,但不会影响命令的执行效果。
2. 将某一文件内容或命令执行结果作为循环范围:
假如你有一个文件 todel.txt,里面是所有要删除的文件列表,现在你想将里面列出的每个文件都删掉。假设这个文件是每个文件名占一行,象这样:
c:tempa1.txt
c:tempa2.txt
c:tempsubdirb3.txt
c:tempsubdirb4.txt
那么可以用FOR来完成:
for /f %a in (todel.txt) do del %a
这个命令还可以更强大。比如你的 todel.txt 并不是象上面例子那么干净,而是由DIR直接生成,有一些没用的信息,比如这样:
Volume in drive D is DATA
Volume Serial Number is C47C-9908
Directory of D:tmp
09/26/2001 12:50 PM 18,426 alg0925.txt
12/02/2001 04:29 AM 795 bsample.txt
04/11/2002 04:18 AM 2,043 invitation.txt
4 File(s) 25,651 bytes
0 Dir(s) 4,060,700,672 bytes free
for 仍然可以解出其中的文件名并进行操作:
for /f "skip=5 tokens=5" %a in (todel.txt) do @if exist %a DEL %a
当然,上面这个命令是在进行删除,如果你只是想看看哪些文件将被操作,把DEL换成echo:
for /f "skip=5 tokens=5" %a in (todel.txt) do @if exist %a echo %a
你将看到:
alg0925.txt
bsample.txt
invitation.txt
skip=5表示跳过前5行(就是DIR输出的头部信息),tokens=5表示将每行的第5列作为循环值放入%a,正好是文件名。在这里我加了一个文件存在判断,是因为最后一行的"free"刚好也是第5列,目前还想不出好的办法来滤掉最后两行,所以检查一下可保万无一失。
3. 可以用 /f 参数将某一命令执行结果作为循环范围
非常有用的功能。比如,我们想知道目前的环境变量有哪些名字(我们只要名字,不要值)。可是SET命令的输出是“名字=值”的格式,现在可以用FOR来只取得名字部分:
FOR /F "delims==" %i IN ('set') DO @echo %i
将看到:
ALLUSERSPROFILE
APPDATA
CLASSPATH
CommonProgramFiles
COMPUTERNAME
ComSpec
dircmd
HOMEDRIVE
......
这里是将set命令执行的结果拿来作为循环范围。delims==表示用=作为分隔符,由于FOR /F默认是用每行第一个TOKEN,所以可以分离出变量名。如果是想仅列出值:
FOR /F "delims== tokens=2" %i IN ('set') DO @echo %i
tokens=2和前例相同,表示将第二列(由=作为分隔符)作为循环值。
再来个更有用的例子:
我们知道 date /t (/t表示不要询问用户输入)的输出是象这样的:
Sat 07/13/2002
现在我想分离出日期部分,也就是13:
for /f "tokens=3 delims=/ " %a in ('date /t') do @echo %a
实际上把 tokens后面换成1,2,3或4,你将分别得到Sat, 07, 13和2002。注意delims=/后面还有个空格,表示/和空格都是分隔符。由于这个空格delims必须是/f选项的最后一项。
再灵活一点,象本文开头提到的,将日期用2002-07-13的格式输出:
for /f "tokens=2,3,4 delims=/ " %a in ('date /t') do @echo %c-%a-%b
当tokens后跟多个值时,将分别映射到%a, %b, %c等。实际上跟你指定的变量有关,如果你指定的是 %i, 它们就会用%i, %j, %k等。
灵活应用这一点,几乎没有做不了的事。
4. 可以用 %~ 操作符将文件名分离成文件名、扩展名、盘符等独立部分
这个比较简单,就是说将循环变量的值自动分离成只要文件名,只要扩展名,或只要盘符等等。
例:要将 c:mp3下所有mp3的歌名列出,如果用一般的 dir /b/s 或 for /r ,将会是这样:
g:mp3Archived5-18-01-A游鸿明-下沙游鸿明-01 下沙.mp3
g:mp3Archived5-18-01-A游鸿明-下沙游鸿明-02 21个人.mp3
......
g:mp3Archived5-18-01-A王菲-寓言王菲-阿修罗.mp3
g:mp3Archived5-18-01-A王菲-寓言王菲-彼岸花.mp3
g:mp3Archived5-18-01-A王菲-寓言王菲-不爱我的我不爱.mp3
......
如果我只要歌名(不要路径和".mp3"):
游鸿明-01 下沙
游鸿明-02 21个人
......
王菲-阿修罗
王菲-彼岸花
王菲-不爱我的我不爱
......
那么可以用FOR命令:
for /r g:mp3 %a in (*.mp3) do @echo %~na
凡是 %~ 开头的操作符,都是文件名的分离操作。具体请看 for /? 帮助。
本文来源于:http://www.myfaq.com.cn/2005September/2005-09-13/199429.html
⑥ 求助CAD2014版64位的及注册机激活码,谢谢
点击下载:AutoCAD 2014
AutoCAD 2014新功能:
1、文件格式与命令行增强
命令行得到了增强,可以提供更智能、更高效的访问命令和系统变量。而且,你可以使用命令行来找到其他诸如阴影图案、可视化风格以及联网帮助等内容。命令行的颜色和透明度可以随意改变。它在不停靠的模式下很好使用,同时也做得更小,其半透明的提示历史可显示多达50行。
2、文件选项卡
AutoCAD 2014版本提供了图形选项卡,它在打开的图形间切换或创建新图形时非常方便。你可以使用“视图”功能区中的“图形选项卡”控件来打开图形选项卡工具条。当文件选项卡打开后,在图形区域上方会显示所有已经打开的图形的选项卡。
文件选项卡是以文件打开的顺序来显示的,你可以拖动选项卡来更改他们之间的位置。如果上面没有足够的空间来显示所有的文件选项卡,此时会在其右端出现一个浮动菜单来访问更多打开的文件。
3、图层管理器
显示功能区上的图层数量增加了。图层现在是以自然排序显示出来。例如,图层名称是1、4、25、6、21、2、10,现在的排序法是1、2、4、6、10、21、25,而不象以前的1、10、2、21、25、4、6。在图层管理器上新增了合并选择,它可以从图层列表中选择一个或多个图层并将在这些层上的对象合并到另外的图层上去。而被合并的图层将会自动被图形清理掉。
4、外部参照增强
在AutoCAD 2014中,外部参照图形的线型和图层的显示功能加强了。外部参照线型不再显示在功能区或属性选项板上的线型列表中,外部参照图层仍然会显示在功能区中以便你可以控制它们的可见性,但他们已不在属性选项板中显示。你可以通过双击“类型”列表轻易地改变外部参照的附着类型,在附着和覆盖之间切换。右键菜单中的一个新选项可以使你在同一时间对多个选择的外部参照改变外部参照类型。
5、AutoCAD点云支持
点云功能在AutoCAD 2014中得到增强,除了以前版本支持的PCG和ISD格式外,还支持插入由Autodesk ReCap产生的点云投影(RCP)和扫描(RCS)文件。你可以使用从“插入”功能区选项卡的点云面板上的“附着”工具来选择点云文件。
6、地理位置
AutoCAD 2014在支持地理位置方面有较大的增强。它与Autodesk? AutoCAD? Map 3D以及实时地图数据工具统一在同一坐标系库上。在图形中定义位置有很多好处,当你在地理位置图形中输入地理位置数据时,AutoCAD会基于图形的地理位置转换数据。你可以看到你的设计位于相对应的位置下,如果你渲染该模型,它将有正确的太阳角度。如果你输出你的图形到象Google地球这样的地图服务器,它会自动显示在正确的位置。当你在你的地理参考图形中插入你的地理参考图片或块时,它们会按照正确的比例自动地安放在正确的位置上。
7、绘图增强
AutoCAD 2014包含了大量的绘图增强功能以帮助你更高效的完成绘图。
圆弧:
按住Ctrl键来切换要所要绘制的圆弧的方向,这样可以轻松地绘制不同方向的圆弧。
多段线:
第11项AUGI的建议所提到的,在AutoCAD 2014中,多段线可以通过自我圆角来创建封闭的多段线。
图纸集:
当在图纸集中创建新图纸时,保存在关联的模板(.dwt)中的CreatDate字段将显示新图纸的创建日期而非模板文件的创建日期。
打印样式:
CONVERTPSTYLES 命令可以使你能够切换当前图纸到命名的或颜色相关的打印样式。在AutoCAD 2014中,它增强到支持空间命名的样式。
8、注释增强
属性:
插入带属性的图块时,默认行为是显示对话框。ATTDIA设置为1。
文字:
单行文字增强了,它将维持其最后一次的对齐设置直到被改变。
标注:
当创建连续标注或基线标注时,新的DIMCONTINUEMODE系统变量提供了更多的控制。当DIMCONTINUEMODE设置为0时,DIMCONTINUE和DIMBASELINE命令是基于当前标注样式创建标注。而当其设置为1时,它们将基于所选择标注的标注样式创建。
图案填充:
在功能区的Hatch工具将维持之前的方法来对选定的对象进行图案填充,即拾取内部部或选择对象。Undo选项也被加入到命令行中。
⑦ autocad_2014是什么样的
AutoCAD 2014新功能:
AutoCAD 2014版本提供了图形选项卡,它在打开的图形间切换或创建新图形时非常方便。
对Windows 8的全面支持,即全面支持触屏操作。已经支持这种超炫的操作方法。
增加了社会化合作设计功能,可以通过AutoCAD 2014与其它设计者交流并交换图形。
实景地图支持,可以将你的DWG图形与现实的实景地图结合在一起,利用GPS等定位方式直接定位到指定位置上去。
图层管理器:在图层管理器上新增了合并选择,它可以从图层列表中选择一个或多个图层并将在这些层上的对象合并到另外的图层上去。而被合并的图层将会自动被图形清理掉
命令行增强:命令行得到了增强,可以提供更智能、更高效的访问命令和系统变量。而且,你可以使用命令行来找到其他诸如阴影图案、可视化风格以及联网帮助等内容。命令行的颜色和透明度可以随意改变。它在不停靠的模式下很好使用,同时也做得更小。其半透明的提示历史可显示多达50行。
自动更正:如果命令输入错误,不会再显示“未知命令”,而是会自动更正成最接近且有效的AutoCAD命令。
⑧ DOS命令全解
dos命令集: ADDEV.COM 在DOS命令行下直接加载设备驱动程序的工具,可与DELDEV配套使用 ANSI.COM 最好的ANSI替换程序,非常强大实用 APATH.COM 简便实用的PATH路径修改工具 ASC.COM ASCII表显示,加载后可随时按Alt+A键调用 ASPICD.SYS 通用SCSI/ASPI光驱驱动程序 ASPIOHCI.SYS Iomega公司出的OHCI接口的USB驱动器的驱动程序 ASPIUHCI.SYS Iomega公司出的UHCI接口的USB驱动器的驱动程序 ATTRIB.COM 最强大实用的ATTRIB替换程序1.09版 AUTOEXEC.BAT 系统启动批处理文件 CDPLAY.COM 非常小巧且方便的CD播放器,加载后可随时按Ctrl+P键调用 CLOAKING.EXE 提供内存CLOAKING API的程序2.01版,减少MSCDEX等的内存占用 CLOCK.COM 很不错的TSR方式的时钟软件,且支持闹钟功能 COMMAND.COM MS-DOS 7.10的命令处理器,支持长文件名 CONFIG.SYS 系统启动配置文件 CP936UNI.TBL DOSLFN 0.32n的简体中文(GB)代码页 CSOUND.COM 扬声器工具,可播放和设置扬声器的声音播放 CTMOUSE.EXE CuteMouse 1.9版,DOS下最好最实用的鼠标驱动程序 CWSDPMI.EXE DOS下最好的DPMI内存驱动程序 DELDEV.COM 将用ADDEV加载的设备驱动程序从内存中删除,即取消那个驱动程序 DELTREE.COM 最强大实用的DELTREE替换程序1.02版 DEVICE.COM 在DOS命令行下直接加载设备驱动程序(如光驱驱动程序.SYS等) DI1000DD.SYS Motto Hairu中的USB硬盘的驱动程序 DOSKEY.COM 最好的DOSKEY替代程序1.6版,命令历史、宏定义、自动完成等功能 DOSLFN.COM DOS下最强大实用的中英文长文件名驱动程序 DOSVER.COM 实用的设置DOS版本号的工具,可自动或手动设置DOS版本号 DPMSAVE.EXE 使用DPMS功能来保护显示器的软件,支持挂起、关闭等多种模式 DREADY.COM 判断驱动器状态,例如检查光驱中是否有光盘、软盘是否写保护等 DUSE.EXE DOS下的USB驱动器的驱动程序,驱动USB硬盘、USB光驱、USB软驱等 DOSET.CAB 含MS-DOS 7.10自带的一些系统工具(如SYS、CHKDSK、FORMAT等) ECHO.SYS 使在CONFIG.SYS中能显示文字的工具 EMM386.EXE MS-DOS 7.10中自带的提供UMB和EMS内存的工具 ESCAPE.EXE 使在任何时候都可以按F12键返回DOS命令行下,以防止死机 EXTRACT.EXE 解压CAB压缩包的工具 FIND.COM 查找工具的最好的替代程序 FINDCD.EXE 自编的实用的查找光驱盘符的程序 FINDRAMD.EXE 实用的查找内存盘盘符的工具 FIX27.COM 清除不必要的内存环境空间的工具 HIMEM.SYS MS-DOS 7.10中自带的提供XMS内存的工具,支持大内存 HIRAM.EXE 与UMBPCI配合,可将HIMEM.SYS加入到UMB内存 IFSHLP.SYS 为Win9x提供增强的VFAT文件系统驱动支持(启动Win9x时必备) IO.SYS MS-DOS 7.10的系统启动文件 KILLER.EXE 可以自动截获非法指令,以防止死机 KPUSH.COM 键盘ASCII表查询及清理工具 LFNXLAT.386 为DOSLFN长文件名驱动程序提供Windows 3.x下的长文件名支持 LOCATE.COM 最强大实用的文件定位工具1.30版,支持长文件名 LOGO.SYS MS-DOS 7.10的启动LOGO画面 LOWDMA.SYS 提供软盘的ISA DMA UMB支持 MCD.EXE 实用的建立和切换文件夹工具,支持长文件名 MOUSCLIP.EXE 实用的在DOS下(包括命令行)用鼠标复制/粘帖及模拟方向键的工具 MSCDEX.EXE 与CLOAKING相配的光驱扩展驱动程序,只占很少内存 MSDOS.SYS MS-DOS 7.10的系统启动配置文件 PC-CACHE.COM 小巧实用的磁盘缓冲程序,可大大加快启动及磁盘读写速度 PC-EXT2X.OVL PC-CACHE所需的用于加载缓冲的覆盖文件 PC-WNERR.OVL PC-CACHE所需的用于Windows启动的覆盖文件 PERUSE.COM 非常好的DOS屏幕滚屏工具 PKUNZIP.EXE ZIP文件的解压工具,支持长文件名 QV1.EXE 多媒体查看器QuickView 1.03b,可以播放音乐和动画、查看图片等 RAMFD.EXE Motto Hairu中的用虚拟软盘的方式驱动USB软驱的驱动程序 README.TXT 本MS-DOS 7.10启动盘的说明文件(即此文件) SPFDISK.EXE 启动管理器+分区管理器,功能强大 SHAREMU.COM 文件共享虚拟程序,以启动需文件共享的程序 SHUTDOWN.COM 非常好的命令行ATX电源重新启动/软关机程序 SORT.COM 非常小巧的排序工具 SRCBOOT.COM 命令行方式的保存/恢复/比较磁盘的启动扇区的小工具 SRCFAT.COM 命令行方式的保存/恢复/比较磁盘的文件分配表(FAT)的小工具 SRCMBR.COM 命令行方式的保存/恢复/比较磁盘的主引导记录(MBR)的小工具 STRINGS.COM 实用的批处理/命令行增强工具 SUBST.EXE 非常小巧的设置虚拟驱动器的程序 TM.EXE 小巧实用的设置键盘和显示的工具 UMBPCI.SYS 强大实用的提供UMB内存的驱动程序3.45版 UNARJ.EXE ARJ文件的解压工具 UNDISK.EXE IMG等磁盘映象文件的解压工具 USBASPI.SYS Motto Hairu中的USB驱动程序 USBCD.SYS Motto Hairu中的USB/SCSI光驱的驱动程序 VC.CAB Volkov Commander 4.99版,实用的文件管理器,支持长文件名 VIDE-CDD.SYS DOS下最好的通用IDE/ATAPI光驱驱动程序,只占很少的内存 WAIT.COM 用于批处理文件的等待工具,且支持键盘返回值等操作 WBAT.COM 非常强大实用的批处理对话框设计器,支持鼠标操作 WRITEXT.EXE 强大的ECHO显示增强工具,可设置显示的位置及颜色等 XMSDSK.EXE 最好的虚拟内存盘工具,非常方便实用,且只占很少的内存 XZL.COM 小巧的袖珍龙汉字系统,以显示汉字 ZENO.EXE 很好的屏幕显示加速软件 DOSET.CAB压缩包中的文件: BOOTPART.EXE 启动分区管理器2.50版,功能强大 CHKDSK.EXE MS-DOS 7.10中自带的命令行方式的磁盘检查工具 DEBUG.EXE MS-DOS 7.10中自带的调试程序 EDIT.HLP MS EDIT的帮助文件 EDIT.COM MS-DOS 7.10中自带的EDIT命令,可编辑多个大文件、文本/二进制文件 FDISK.EXE Free FDISK 1.21,强大的硬盘分区工具,支持大硬盘和各种分区 FDISK.INI Free FDISK的配置文件 FDISKPT.INI Free FDISK的配置文件 FORMAT.EXE MS-DOS 7.10中自带的格式化程序 MEM.EXE MS-DOS 7.10中自带的内存信息查看工具 MORE.COM MS-DOS 7.10中自带的分屏显示工具 NTFSDOS.EXE DOS下的NTFS驱动器的驱动程序(只读) NTFSHLP.EXE 为NTFSDOS提供Win9x下的NTFS功能的VXD驱动程序 REGEDIT.EXE MS-DOS 7.10中自带的Windows注册表维护工具 SMARTDRV.EXE MS-DOS 7.10中自带的磁盘高速缓冲程序 SYS.COM MS-DOS 7.10中自带的DOS系统文件传输程序 VC.CAB压缩包中的文件: Volkov Commander 4.99程序 VC.EXE VC 4.99的主程序 VC.MNU VC 4.99的菜单文件 VC.OVL VC 4.99的覆盖文件
⑨ c语言中命令行指的是那部分
命令行界面(Command Line Interface,简写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。
通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。所以,在现在的图形用户界面的操作系统中,通常都保留着可选的命令行界面。
虽然现在许多电脑系统都提供了图形化的操作方式,但是却都没有因而停止提供文字模式的命令行操作方式,相反的,许多系统反而更加强这部份的功能,例如Windows就不只加强了操作命令的功能和数量,也一直在改善Shell Programming的方式。而之所以要加强、改善,自然是因为不够好;操作系统的图形化操作方式对单一用户端电脑的操作,已经相当方便,但如果是一群用户端电脑,或者是24小时运作的服务器电脑,图形化操作方式有时会力有未逮,所以需要不断增强命令行界面的脚本语言和宏语言来提供丰富的控制与自动化的系统管理能力,例如Linux系统的Bash或是Windows系统的Windows PowerShell。
没有图形界面的都是命令行。
⑩ 批处理命令,谁帮我解答一下,谢谢
最强之dos命令 – for (是新手学习FOR语句的好资料)
这篇文章是网上找的,很多初学DOS的朋友对FOR语句掌握的好不是太过熟悉,希望这边文章能够给你开阔思路帮助你把FOR语句学好,主要的参数介绍和实例讲的都很清楚,也希望对DOS越来越感兴趣--->发挥你的想象力吧
正文开始
以前常觉得DOS的命令行功能太弱,无法象UNIX一样可以用命令行完成非常复杂的操作。实际上,当MS从WIN2K开始将命令行增强后,已经借鉴了相当多UNIX的优点,虽然还无法做到象UNIX那么灵活,但已可完成绝大多数的任务,比如用&&和 连接两个(或更多)命令,由前一个的返回值来决定下一个是否执行,等等。而在这些增强中,最明显的,就是FOR命令。
举个例子,用适当的参数,可用FOR命令将 date /t 的输出 从 "Sat 07/13/2002" 变成你想要的格式,比如, "2002-07-13":
c:\>for /f "tokens=2,3,4 delims=/ " %a in ('date /t') do @echo %c-%a-%b
2002-07-13
该例将在(3)中详细说明。
0. 基本应用
简单说,FOR是个循环,可以用你指定的循环范围生成一系列命令。最简单的例子,就是人工指定循环范围,然后对每个值执行指定的命令。例如,想快速报告每个硬盘分区的剩余空间:
for %a in (c: d: e: f do @dir %a\ find "bytes free"
将输出:
8 Dir(s) 1,361,334,272 bytes free
15 Dir(s) 8,505,581,568 bytes free
12 Dir(s) 12,975,149,056 bytes free
7 Dir(s) 11,658,854,400 bytes free
用它可以使一些不支持通配符的命令对一系列文件进行操作。在WIN9X中,TYPE命令(显示文件内容)是不支持*.txt这种格式的(WIN2K开始TYPE已支持通配)。遇到类似情况就可以用FOR:
for %a in (*.txt) do type %a
这些还不是FOR最强大的功能。我认为它最强大的功能,表现在以下这些高级应用:
1. 可以用 /r 参数遍历整个目录树
2. 可以用 /f 参数将文本文件内容作为循环范围
3. 可以用 /f 参数将某一命令执行结果作为循环范围
4. 可以用 %~ 操作符将文件名分离成文件名、扩展名、盘符等独立部分
现分别举例说明如下:
1. 用 /r 遍历目录树
当用 *.* 或 *.txt 等文件名通配符作为 for /r 的循环范围时,可以对当前目录下所有文件(包括子目录里面的文件)进行操作。举个例子,你想在当前目录的所有txt文件(包括子目录)内容中查找"bluebear"字样,但由于find本身不能遍历子目录,所以我们用for:
for /r . %a in (*.txt) do @find "bluebear" %a
find 前面的 @ 只是让输出结果不包括 find 命令本身。这是DOS很早就有的功能。和FOR无关。
当用 . 作为循环范围时,for 只将子目录的结构(目录名)作为循环范围,而不包括里面的文件。有点象 TREE 命令,不过侧重点不同。TREE 的重点是用很漂亮易读的格式输出,而FOR的输出适合一些自动任务,例如,我们都知道用CVS管理的项目中,每个子目录下都会有一个CVS目录,有时在软件发行时我们想把这些CVS目录全部去掉:
for /r . %a in (.) do @if exist %a\CVS rd /s /q %a\CVS
先用 if exist 判断一下,是因为 for 只是机械的对每个目录进行列举,如果有些目录下面没有CVS也会被执行到。用 if exist 判断一下比较安全。
这种删除命令威力太大,请小心使用。最好是在真正执行以上的删除命令前,将 rd /s /q 换成 @echo 先列出要删出的目录,确认无误后再换回rd /s /q:
for /r . %a in (.) do @if exist %a\CVS @echo %a\CVS
可能目录中会多出一层 ".",比如 c:\proj\release\.\CVS ,但不会影响命令的执行效果。
2. 将某一文件内容或命令执行结果作为循环范围:
假如你有一个文件 todel.txt,里面是所有要删除的文件列表,现在你想将里面列出的每个文件都删掉。假设这个文件是每个文件名占一行,象这样:
c:\temp\a1.txt
c:\temp\a2.txt
c:\temp\subdir\b3.txt
c:\temp\subdir\b4.txt
那么可以用FOR来完成:
for /f %a in (todel.txt) do del %a
这个命令还可以更强大。比如你的 todel.txt 并不是象上面例子那么干净,而是由DIR直接生成,有一些没用的信息,比如这样:
Volume in drive D is DATA
Volume Serial Number is C47C-9908
Directory of D:\tmp
09/26/2001 12:50 PM 18,426 alg0925.txt
12/02/2001 04:29 AM 795 bsample.txt
04/11/2002 04:18 AM 2,043 invitation.txt
4 File(s) 25,651 bytes
0 Dir(s) 4,060,700,672 bytes free
for 仍然可以解出其中的文件名并进行操作:
for /f "skip=5 tokens=5" %a in (todel.txt) do @if exist %a DEL %a
当然,上面这个命令是在进行删除,如果你只是想看看哪些文件将被操作,把DEL换成echo:
for /f "skip=5 tokens=5" %a in (todel.txt) do @if exist %a echo %a
你将看到:
alg0925.txt
bsample.txt
invitation.txt
skip=5表示跳过前5行(就是DIR输出的头部信息),tokens=5表示将每行的第5列作为循环值放入%a,正好是文件名。在这里我加了一个文件存在判断,是因为最后一行的"free"刚好也是第5列,目前还想不出好的办法来滤掉最后两行,所以检查一下可保万无一失。
3. 可以用 /f 参数将某一命令执行结果作为循环范围
非常有用的功能。比如,我们想知道目前的环境变量有哪些名字(我们只要名字,不要值)。可是SET命令的输出是“名字=值”的格式,现在可以用FOR来只取得名字部分:
FOR /F "delims==" %i IN ('set') DO @echo %i
将看到:
ALLUSERSPROFILE
APPDATA
CLASSPATH
CommonProgramFiles
COMPUTERNAME
ComSpec
dircmd
HOMEDRIVE
......
这里是将set命令执行的结果拿来作为循环范围。delims==表示用=作为分隔符,由于FOR /F默认是用每行第一个TOKEN,所以可以分离出变量名。如果是想仅列出值:
FOR /F "delims== tokens=2" %i IN ('set') DO @echo %i
tokens=2和前例相同,表示将第二列(由=作为分隔符)作为循环值。
再来个更有用的例子:
我们知道 date /t (/t表示不要询问用户输入)的输出是象这样的:
Sat 07/13/2002
现在我想分离出日期部分,也就是13:
for /f "tokens=3 delims=/ " %a in ('date /t') do @echo %a
实际上把 tokens后面换成1,2,3或4,你将分别得到Sat, 07, 13和2002。注意delims=/后面还有个空格,表示/和空格都是分隔符。由于这个空格delims必须是/f选项的最后一项。
再灵活一点,象本文开头提到的,将日期用2002-07-13的格式输出:
for /f "tokens=2,3,4 delims=/ " %a in ('date /t') do @echo %c-%a-%b
当tokens后跟多个值时,将分别映射到%a, %b, %c等。实际上跟你指定的变量有关,如果你指定的是 %i, 它们就会用%i, %j, %k等。
灵活应用这一点,几乎没有做不了的事。
4. 可以用 %~ 操作符将文件名分离成文件名、扩展名、盘符等独立部分
这个比较简单,就是说将循环变量的值自动分离成只要文件名,只要扩展名,或只要盘符等等。
例:要将 c:\mp3下所有mp3的歌名列出,如果用一般的 dir /b/s 或 for /r ,将会是这样:
g:\mp3\Archived\05-18-01-A\游鸿明-下沙\游鸿明-01 下沙.mp3
g:\mp3\Archived\05-18-01-A\游鸿明-下沙\游鸿明-02 21个人.mp3
......
g:\mp3\Archived\05-18-01-A\王菲-寓言\王菲-阿修罗.mp3
g:\mp3\Archived\05-18-01-A\王菲-寓言\王菲-彼岸花.mp3
g:\mp3\Archived\05-18-01-A\王菲-寓言\王菲-不爱我的我不爱.mp3
......
如果我只要歌名(不要路径和".mp3"):
游鸿明-01 下沙
游鸿明-02 21个人
......
王菲-阿修罗
王菲-彼岸花
王菲-不爱我的我不爱
......
那么可以用FOR命令:
for /r g:\mp3 %a in (*.mp3) do @echo %~na
凡是 %~ 开头的操作符,都是文件名的分离操作。具体请看 for /? 帮助。
本文举的例子有些可能没有实际用处,或可用其它办法完成。仅用于体现FOR可以不借助其它工具,仅用DOS命令组合,就可完成相当灵活的任务