引用 | 編輯
ydqdq
2004-08-21 03:08 |
樓主
▼ |
||
x0
怎样制作支持SATA,SCSI,RAID控制器的XP/2003纯净版
制作纯净版的主导思想:尽量兼容各种机子、尽量不要减肥、尽可能干净。 所谓的“万能预装”就是利用GHOST和微软的封装技术,经过处理后制作成的一个ghost映像,然后通过普通的ghost方式“安装”到c盘。“预装”名词我是从品牌机上引用过来的。毕竟这样方式和普通安装有很大的区别。这个制作方式经过众多网友的讨论研究,不断完善、不断改进,已经基本实现所谓的“万能”。为了让更多的网友和系统爱好者了解制作的过程,编辑整理了制作过程。 一、安装前的准备 准备一张完整的系统安装盘,推荐使用如下安装盘: 1、Windows.XP.Pro.With.SP1.VOL.CN/EN,即卷标为XRMPVOL-CN/EN 2、Windows.2003.STD.VOL.CN/EN, 即卷标为NRMSVOL-CN/EN,此版本支持红外设备,多数驱动能像XP那样默认安装,稍经优化即跟XP差不多。 3、下载制作GHOST工具(已经在imlogo’FTP上提供) a) 在XP安装光盘中打开\SUPPORT\TOOLS\DEPLOY.CAB文件,先在 C:盘根目录下建议一个名为Sysprep 的文件夹,并将DEPLOY.CAB压缩包文件用Winrar全部解压缩到 c:\sysprep目录。 b) 下载“死性不改“的最新电源判断程序。点击运行后会把文件自动解压到c:\sysprep目录。 ……………. 二、安装操作系统(以下均以XP为例) 1、正常安装完整操作系统,系统文件格式建议采用FAT32,恢复后还可以转换为NTFS。同时注意,安装时,建议选择完全格式化硬盘分区,不要选择快格! 2、上网正常升级所有的补丁(根据需要可以有选择地升级一些推荐性补丁,但关键补丁一定得全部升级)。 三、系统简单优化及适度减肥 可以对XP进行一些简单的优化,这要根据各人的喜好。如关闭错误回报,显示隐藏目录等。但不主张使用软件进行优化! 安装XP完毕大概有2G多,一张光盘是无法放得下的。所以要进行 “减肥行动”!但不主张过份减肥。 1、禁用系统还原,恢复到新的机器后又会恢复、这不影响; 2、设置页面为0,“我的电脑-属性-高级-性能-设置-高级-虚拟内存-更改-选择无分页文件-设置”然后重新启动。恢复到新的机器后又会自动恢复到机器合适的大小的。 3、千万千万不要运行 “sfc /purgecache”命令!虽然它能节省约200-300M的磁盘空间,但将会删除c:\windows\system32\dllcache文件夹中所有的备份文件,否则,以后遇上系统文件被修改时会提示你插入XP安装光盘!(虽然可以不插入,但那个提示还是太烦人)。现在已经有了更加好的办法了! 4、进行磁盘文件清理,删除临时文件及IE缓存。 经过以上操作操作,一般C盘可以减少到只占用1.5G左右,后面还有一步可减少300M左右的。像以上这样的减肥是可以接受的,基本对系统改动不大,有利于今后XP系统的稳定运行。 四、删除硬件驱动 1、更改 IDE ATA/ATAPI控制器, 这一步就是XP系统万能GHOST的主要步骤所在!为了适应现在各 .. 訪客只能看到部份內容,免費 加入會員 x0
|
引用 | 編輯
ydqdq
2004-08-21 03:10 |
1樓
▲ ▼ |
CMD命令行界面功能详细介绍
CMD [/A | /U] [/Q] [/D] [/E] [/F] [/V] [[/S] [/C | /K] string] 其中:CMD是不可缺少的! /C 执行字符串指定的命令然后终断 /K 执行字符串指定的命令但保留 /S 在 /C 或 /K 后修改字符串处理(见下) /Q 关闭回应 /D 从注册表中停用执行 AutoRun 命令(见下) /A 使向内部管道或文件命令的输出成为 ANSI /U 使向内部管道或文件命令的输出成为 Unicode /T],/X 与 /E]可以使用 /E:OFF,为某一特定调用而停用扩展。您可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有调用的扩展,这要通过设置使用REGEDT32.EXE 的注册表中的一个或两个 REG_DWORD 值: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions 和/或 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions 到 0x1 或 0x0。用户特定设置比机器设置有优先权。命令行开关比注册表设置有优先权。以上是对于基本命令的介绍,下面包含的是命令行扩展部分。延迟变量环境扩展不按默认值启用。您可以用/V:ON 或 /V:OFF 命令行开关,为 CMD.EXE 的某个调用而启用或停用延迟环境变量扩充。 您可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有调用的完成,这要通过设置使用 REGEDT32.EXE 的注册表中的一个或两个 REG_DWORD 值: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedEXPansion 和/或 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedEXPansion 到 0x1 或 0x0。用户特定设置比机器设置有优先权。命令行开关比注册表设置有优先权。 如果延迟环境变量扩充被启用,惊叹号字符可在执行时间,被用来代替一个环境变量的数值。文件和目录名完成不按默认值启用。您可以用 /F:ON 或 /F:OFF命令行开关,为 CMD.EXE 的某个调用而启用或停用文件名完成。 您可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有调用的完成,这要通过设置使用 REGEDT32.EXE 的注册表中的一个或两个REG_DWORD 值: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar 和/或 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar 由一个控制字符的十六进制值作为一个特定参数(例如,0x4 是Ctrl-D,0x6 是 Ctrl-F)。 用户特定设置优先于机器设置。命令行开关优先于注册表设置。 如果完成是用 /F:ON 命令行开关启用的,两个要使用的控制符是: 目录名字完成用 Ctrl-D, 文件名完成用 Ctrl-F。 要停用注册表中的某个字符,请用空格(0x20)的数值,因为此字符不是控制字符。 如果键入两个控制字符中的一个,完成会被调用。完成功能将路径字符串带到光标的左边,如果没有通配符,将通配符附加到左边,并建立相符的路径列表。然后,显示第一个相符的路径。如果没有相符的路径,则发出嘟嘟声,不影响显示。之后,重复按同一个控制字符会循环显示相符路径的列表。将 Shift 键跟控制字符同时按下,会倒着显示列表。如果对该行进行了任何编辑,并再次按下控制字符,保存的相符路径的列表会被丢弃,新的会被生成。如果在文件和目录名完成之间切换,会发生同样现象。两个控制字符之间的唯一区别是文件完成字符符合文件和目录名,而目录完成字符只符合目录名。如果文件完成被用于内置式目录命令(CD、MD 或 RD),就会使用目录完成。 将引号将相符路径括起来,完成代码可以正确处理含有空格或其他特殊字符的文件名。同时,如果备份,然后从行内调用文件完成,完成被调用是位于光标右方的文字会被丢弃。 需要引号的特殊字符是]{}^=;!'+,`~ 下面是命令行扩展的详细应用方法介绍:熟悉dos的朋友会发现许多内容和dos相同。 1、DEL 或 ERASE 删除一个或数个文件。 DEL [/P] [/F] [/S] [/Q] [/A[[]attributes]] names ERASE [/P] [/F] [/S] [/Q] [/A[[]attributes]] names names 指定一个或数个文件或目录列表。通配符可被用来 删除多个文件。如果指定了一个目录,目录中的所 有文件都会被删除。 /P 删除每一个文件之前提示确认。 /F 强制删除只读文件。 /S 从所有子目录删除指定文件。 /Q 安静模式。删除全局通配符时,不要求确认。 /A 根据属性选择要删除的文件。 attributes R 只读文件 S 系统文件 H 隐藏文件 A 存档文件 - 表示“否”的前缀 如果命令扩展名被启用,DEL 和 ERASE 会如下改变] attr 指定控制台输出的颜色属性 颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为 前景。每个数字可以为以下任何值之一] [drive][path] CHDIR [..] CD [/D] [drive][path] CD [..] .. 指定要改成父目录。 键入 CD 驱动器]此有可能将目录名改为一个带有空格但不带有引号的子目录名。例如]path MD [drive]path 如果命令扩展名被启用,MKDIR 会如下改变: 如果需要,MKDIR 会在路径中创建中级目录。例如: 假设 \a 不存在,那么: mkdir \a\b\c\d 与: mkdir \a chdir \a mkdir b chdir b mkdir c chdir c mkdir d 相同。如果扩展名被停用,则需要键入 mkdir \a\b\c\d。 5、PROMPT 更改 cmd.exe 命令提示符。 PROMPT [text] text 指定新的命令提示符。 提示符可以由普通字符及下列特定代码组成] path 指定要成为当前目录的目录。 如果命令扩展名被启用,除了一般驱动器号和路径,PUSHD命令还接受网络路径。如果指定了网络路径,PUSHD 将创建一个指向指定网络资源的临时驱动器号,然后再用刚定义的驱动器号改变当前的驱动器和目录。可以从 Z: 往下分配临时驱动器号,使用找到的第一个没有用过的驱动器号。 7、POPD 命令选项到保存在 PUSHD 命令里的目录。 POPD 如果命令扩展名被启用,从推目录堆栈 POPD 驱动器时,POPD命令会删除 PUSHD 创建的临时驱动器号。 8、SET 显示、设置或删除 cmd.exe 环境变量。 SET [variable=[string]] variable 指定环境变量名。 string 指定要指派给变量的一系列字符串。 要显示当前环境变量,键入不带参数的 SET。 如果命令扩展名被启用,SET 会如下改变] /A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式评估器很简单并以递减的优先权顺序支持下列操作: () - 分组 ! ~ - - 一元运算符 * / % - 算数运算符 + - - 算数运算符 << >> - 逻辑移位 - 按位“与” ^ - 按位“异” | - 按位“或” = *= /= %= += -= - 赋值 &= ^= |= <<= >>= - 表达式分隔符 如果您使用任何逻辑或取余操作符, 您需要将表达式字符串用引号扩起来。在表达式中的任何非数字字符串键作为环境变量名称,这些环境变量名称的值已在使用前转换成数字。如果指定了一个环境变量名称,但未在当前环境中定义,那么值将被定为零。这使您可以使用环境变量值做计算而不用键入那些 % 符号来得到它们的值。如果 SET /A 在命令脚本外的命令行执行的,那么它显示该表达式的最后值。该分配的操作符在分配的操作符左边需要一个环境变量名称。除十六进制有 0x 前缀,八进制有 0 前缀的,数字值为十进位数字。因此, 0x12 与 18 和 022相同。请注意八进制公式可能很容易搞混: 08 和 09 是无效的数字,因为 8 和 9 不是有效的八进制位数。 /P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入行之前,显示指定的 promptString。promptString 可以是空的。 环境变量替换已如下增强: %PATH:str1=str2% 会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1"。 要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。 "str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的开始到 str1 剩余部分第一次出现的地方,都一直保持相配。 也可以为扩展名指定子字符串。 %PATH:~10,5% 会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏移量 10)字符开始的五个字符。如果没有指定长度,则采用默认值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,使用的数字则是环境变量数值长度加上指定的偏移量或长度。 %PATH]可以通过 CMD.EXE 的 /V 命令行开关而被启用/停用。 考虑到读取一行文本时所遇到的目前扩充的限制时,延迟环境变量扩充是很有用的,而不是执行的时候。以下例子说明直接变量扩充的问题: set VAR=before if "%VAR%" == "before" ( set VAR=after if "%VAR%" == "after" @echo If you see this, it worked ) 不会显示消息,因为在读到第一个 IF 语句时,BOTH IF 语句中的 %VAR% 会被代替;原因是: 它包含 IF 的文体,IF 是一个复合语句。所以,复合语句中的 IF 实际上是在比较 "before" 和"after",这两者永远不会相等。同样,以下这个例子也不会达到预期效果: set LIST= for %i in (*) do set LIST=%LIST% %i echo %LIST% 原因是它不会在目前的目录中建立一个文件列表,而只是将LIST 变量设成找到的最后一个文件。这也是因为 %LIST% 在FOR 语句被读取时,只被扩充了一次;而且,那时的 LIST 变量是空的。因此,我们真正执行的 FOR 循环是: for %i in (*) do set LIST= %i 这个循环继续将 LIST 设成找到的最后一个文件。 延迟环境变量扩充允许您使用一个不同的字符(惊叹号)在执行时间扩充环境变量。如果延迟的变量扩充被启用,可以将上面例子写成以下所示,以达到预期效果: set VAR=before if "%VAR%" == "before" ( set VAR=after if "!VAR!" == "after" @echo If you see this, it worked ) set LIST= for %i in (*) do set LIST=!LIST! %i echo %LIST% 如果命令扩展名被启用,有几个动态环境变量可以被扩展,但不会出现在 SET 显示的变量列表中。每次变量数值被扩展时,这些变量数值都会被动态计算。如果用户用这些名称中任何一个定义变量,那个定义会替代下面描述的动态定义: %CD% - 扩展到当前目录字符串。 %DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。 %TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。 %RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。 %ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。 %CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号。 %CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。 9、SETLOCAL 开始批处理文件中环境改动的本地化操作。在执行 SETLOCAL 之后所做的环境改动只限于批处理文件。要还原原先的设置,必须执行 ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个尚未执行的 SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行。 SETLOCAL 如果命令扩展名被启用,SETLOCAL 会如下改变: SETLOCAL 批命令现在可以接受可选参数: ENABLEEXTENSIONS / DISABLEEXTENSIONS 启动或停用命令处理器扩展名。详细信息,请参阅 CMD /?。 ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION 启动或停用延缓环境变量扩展名。详细信息,请 参阅 对SET的介绍 。 无论在 SETLOCAL 命令之前它们的设置是什么,这些修改会一直保留到匹配的 ENDLOCAL 命令。 如果有一个参数,SETLOCAL 命令将设置 ERRORLEVEL 的值。 如果有两个有效参数中的一个,该值则为零。用下列技巧,您可以在批脚本中使用这个来决定扩展名是否可用: VERIFY OTHER 2>nul SETLOCAL ENABLEEXTENSIONS IF ERRORLEVEL 1 echo Unable to enable extensions 这个方法之所以有效,是因为在 CMD.EXE 的旧版本上,SETLOCAL不设置 ERRORLEVEL 值。具有不正确参数的 VERIFY 命令将ERRORLEVEL 值初始化成非零值。 10、ENDLOCAL 结束批处理文件中环境改动的本地化操作。在执行ENDLOCAL 之后所做的环境改动不再仅限于批处理文件。批处理文件结束后,原先的设置无法还原。 ENDLOCAL 如果命令扩展名被启用,ENDLOCAL 会如下改变: 如果相应的 SETLOCAL 用新的 ENABLEEXTENSIONS 或DISABLEEXTENSIONS 选项启用或停用了命令扩展名,那么,在ENDLOCAL 之后,命令扩展名的启用/停用状态会还原到执行相应的 SETLOCAL 命令前的状态。 11、IF 执行批处理程序中的条件处理。 IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command NOT 指定只有条件为 false 的情况下, Windows XP 才 应该执行该命令。 ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的退出编码,指定条件为 true。 string1==string2 如果指定的文字字符串匹配,指定条件为 true。 EXIST filename 如果指定的文件名存在,指定条件为 true。 command 如果符合条件,指定要执行的命令。如果指定的 条件为 FALSE,命令后可跟一个执行 ELSE 关键字后的命令的 ELSE 命令。 ELSE 子句必须在 IF 之后出现在同一行上。例如]为 del 命令需要用一个新行终止,以下子句不会有效: IF EXIST filename. del filename. ELSE echo filename. missing 由于 ELSE 命令必须与 IF 命令的尾端在同一行上,以下子句也不会有效: IF EXIST filename. del filename. ELSE echo filename. missing 如果都放在同一行上,以下子句有效: IF EXIST filename. (del filename.) ELSE echo filename. missing 如果命令扩展名被启用,IF 会如下改变: IF [/I] string1 compare-op string2 command IF CMDEXTVERSION number command IF DEFINED variable command 其中,比较运算符可以是]是,如果 string1 和 string2 都是由数字组成的,字符串会被转换成数字,进行数字比较。 CMDEXTVERSION 条件的作用跟 ERRORLEVEL 的一样,除了它是在跟与命令扩展名有关联的内部版本号比较。第一个版本是 1。每次对命令扩展名有相当大的增强时,版本号会增加一个。 命令扩展名被停用时,CMDEXTVERSION 条件不是真的。 如果已定义环境变量,DEFINED 条件的作用跟 EXISTS 的一样,除了它取得一个环境变量,返回的结果是 true。 如果没有名为 ERRORLEVEL 的环境变量,%ERRORLEVEL%会扩充为 ERROLEVEL 当前数值的字符串表达式;否则,您会得到其数值。运行程序后,以下语句说明 ERRORLEVEL 的用法]可以使用以上的数字比较] %variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 command-parameters 为特定命令指定参数或命令行开关。 在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.如果命令扩展名被启用,下列额外的 FOR 命令格式会受到支持] 如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。 FOR /R [[drive]path] %variable IN (set) DO command [command-parameters] 检查以 [drive]path 为根的目录树,指向每个目录中的FOR 语句。如果在 /R 后没有指定目录,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。 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 (file-set) DO command [command-parameters] FOR /F ["options"] %variable IN ("string" DO command [command-parameters] FOR /F ["options"] %variable IN ('command') DO command [command-parameters] 或者,如果有 usebackq 选项] %variable IN (file-set) DO command [command-parameters] FOR /F ["options"] %variable IN ("string" DO command [command-parameters] FOR /F ["options"] %variable IN ('command') DO command [command-parameters] filenameset 为一个或多个文件名。继续到 filenameset 中的下一个文件之前,每份文件都已被打开、读取并经过处理。 处理包括读取文件,将其分成一行行的文字,然后将每行解析成零或更多的符号。然后用已找到的符号字符串变量值调用 For 循环。以默认方式,/F 通过每个文件的每一行中分开的第一个空白符号。跳过空白行。您可通过指定可选 "options"参数替代默认解析操作。这个带引号的字符串包括一个或多个指定不同解析选项的关键字。这些关键字为]此,以下例子: FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i 会枚举当前环境中的环境变量名称。 另外,FOR 变量参照的替换已被增强。您现在可以使用下列选项语法: ~I - 删除任何引号(" ,扩充 %I %~fI - 将 %I 扩充到一个完全合格的路径名 %~dI - 仅将 %I 扩充到一个驱动器号 %~pI - 仅将 %I 扩充到一个路径 %~nI - 仅将 %I 扩充到一个文件名 %~xI - 仅将 %I 扩充到一个文件扩展名 %~sI - 扩充的路径只含有短名 %~aI - 将 %I 扩充到文件的文件属性 %~tI - 将 %I 扩充到文件的日期/时间 %~zI - 将 %I 扩充到文件的大小 %~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩充到空字符串 可以组合修饰符来得到多重结果: %~dpI - 仅将 %I 扩充到一个驱动器号和路径 %~nxI - 仅将 %I 扩充到一个文件名和扩展名 %~fsI - 仅将 %I 扩充到一个带有短名的完整路径名 %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个驱动器号和路径。 %~ftzaI - 将 %I 扩充到类似输出线路的 DIR 在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名比较易读,而且避免与不分大小写的组合键混淆。 13、CALL 从批处理程序调用另一个批处理程序。 CALL [drive][path]filename [batch-parameters] batch-parameters 指定批处理程序所需的命令行信息。 如果命令扩展名被启用,CALL 会如下改变] 如果命令扩展名被启用,SHIFT 命令支持/n 命令行开关;该命令行开关告诉命令从第 n 个参数开始移位;n 介于零和八之间。例如: SHIFT /2 会将 %3 移位到 %2,将 %4 移位到 %3,等等;并且不影响 %0 和 %1。 15、GOTO 将 cmd.exe 导向到批处理程序中带标签的行。 GOTO label label 指定批处理程序中用作标签的文字字符串。 标签必须单独一行,并且以冒号打头。 如果命令扩展名被启用,GOTO 会如下改变: GOTO 命令现在接受目标标签 :EOF,这个标签将控制转移到当前批脚本文件的结尾。不定义就退出批脚本文件,这是一个容易的办法。有关能使该功能有用的 CALL 命令的扩展名描述,请参考CALL的介绍 16、START (同时包括对外部命令调用所做的更改) 启动另一个窗口运行指定的程序或命令。 START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] [/WAIT] [/B] [command/program] [parameters] "title" 在窗口标题栏中显示的标题。 path 起始目录 B 在不创建新窗口的情况下开始应用程序。 除非启动 ^C 处理,否则该应用程序会忽略 ^C 处理;^Break 是唯一可以中断该应用程序的方式 I 新环境是传递给 cmd.exe 的原始环境,而不是当前环境 MIN 开始时窗口最小化 MAX 开始时窗口最大化 SEPARATE 在分开的空间内开始 16 位 Windows 程序 SHARED 在分共享的空间内开始 16 位 Windows 程序 LOW 在 IDLE 优先级类别开始应用程序 NORMAL 在 NORMAL 优先级类别开始应用程序 HIGH 在 HIGH 优先级类别开始应用程序 REALTIME 在 REALTIME 优先级类别开始应用程序 ABOVENORMAL 在 ABOVENORMAL 优先级类别开始应用程序 BELOWNORMAL 在 BELOWNORMAL 优先级类别开始应用程序 WAIT 启动应用程序并等候它结束 command/program 如果是内部 cmd 命令或批文件,那么该命令处理器是用 /K 命令行开关运行 cmd.exe 的。这表示该窗口在命令运行后仍然存在。 如果不是内部 cmd 命令或批文件,则是一个程序,并作为窗口应用程序或控制台应用程序运行。 parameters 这些为传送到命令/程序的参数如果命令扩展名被启用,通过命令行或 START 命令的外部命令调用会如下改变]]] .ext 指定跟文件类型关联的文件扩展名 fileType 指定跟文件扩展名关联的文件类型 键入 ASSOC 而不带参数,显示当前文件关联。如果只用文件扩展名调用 ASSOC,则显示那个文件扩展名的当前文件关联。如果不为文件类型指定任何参数,命令会删除文件扩展名的关联。 18、FTYPE 显示或修改用在文件扩展名关联中的文件类型FTYPE [fileType[=[openCommandString]]] fileType 指定要检查或改变的文件类型 openCommandString 指定调用这类文件时要使用的开放式命令。 键入 FTYPE 而不带参数来显示当前有定义的开放式命令字符串的文件类型。 FTYPE 仅用一个文件类型启用时,它显示那个文件类型目前的开放式命令字符串。如果不为开放式命令字符串指定,FTYPE 命令将删除那个文件类型的开放式命令字符串。在一个开放式命令字符串之内,命令字符串 %0 或 %1 被通过关联调用的文件名所代替。%* 得到所有的参数,%2 得到第一个参数,%3 得到第二个,等等。%~n 得到其余所有以 nth 参数打头的参数;n 可以是从 2 到 9 的数字。例如: ASSOC .pl=PerlScript FTYPE PerlScript=perl.exe %1 %* 允许您启用以下 Perl 脚本: script.pl 1 2 3 如果不想键入扩展名,则键入以下字符串: set PATHEXT=.pl;%PATHEXT% 被启动的脚本如下: script 1 2 3 x0 |
引用 | 編輯
ydqdq
2004-08-21 03:11 |
2樓
▲ ▼ |
手把手教你写批处理
批处理的介绍 扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:\BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:\batch,你就可以在任意位置运行所有你编写的批处理程序。 第四,在DOS和Win9x/Me系统下,C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运行批处理文件,每次系统启动时会自动运行该文件,你可以将系统每次启动时都要运行的命令放入该文件中,例如设置搜索路径,调入鼠标驱动和磁盘缓存,设置系统环境变量等。下面是一个运行于Windows 98下的autoexec.bat的示例: @ECHO OFF PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\UCDOS;C:\DOSTools;C:\SYSTOOLS;C:\WINTOOLS;C:\BATCH LH SMARTDRV.EXE /X LH DOSKEY.COM /INSERT LH CTMOUSE.EXE SET TEMP=D:\TEMP SET TMP=D:\TEMP 批处理的作用 简单的说,批处理的作用就是自动的连续执行多条命令。 这里先讲一个最简单的应用:在启动wps软件时,每次都必须执行(>前面内容表示DOS提示符): C:\>cd wps C:\WPS>spdos C:\WPS>py C:\WPS>wbx C:\WPS>wps 如果每次用WPS之前都这样执行一遍,您是不是觉得很麻烦呢? 好了,用批处理,就可以实现将这些麻烦的操作简单化,首先我们编写一个runwps.bat批处理文件,内容如下: @echo off c: cd\wps spdos py wbx wps cd\ 以后,我们每次进入wps,只需要运行runwps这个批处理文件即可。 常用命令 echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。 echo 表示显示此命令后的字符 echo off 表示在此语句后所有运行的命令都不显示命令行本身 @与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。 call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。 pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续 rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。 例1:用edit编辑a.bat文件,输入下列内容后存盘为c]相当于DOS命令的命令行参数),这需要用到一个参数表示符“%”。 %[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。 例2:C] "参数" == "字符串" 待执行的命令 参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。 例:if "%1"=="a" format a: 2、if [not] exist [路径\]文件名 待执行的命令 如果有指定的文件,则条件成立,运行命令,否则运行下一句。 如]用于选择),从而根据用户的选择返回不同的errorlevel,然后于if errorlevel配合,根据用户的选择运行不同的命令。 注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。 choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异): CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text] 描述]? 例:test.bat的内容如下(注意,用if errorlevel判断返回值时,要按返回值从高到低排列)]?” ,用户可选择d m e ,然后if语句根据用户的选择作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,批处理运行结束。 四、for 循环命令,只要条件符合,它将多次执行同一命令。 语法: 对一组文件中的每一个文件执行某个特定命令。 FOR %%variable IN (set) DO command [command-parameters] %%variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 command-parameters 为特定命令指定参数或命令行开关。 例如一个批处理文件中有一行] 命令 (2) test2.bat文件中的%1是参数,DOS允许传递9个批参数信息给批处理文件,分别为%1~%9(%0表示test2命令本身) ,这有点象编程中的实参和形参的关系,%1是形参,AUTOEXEC.BAT是实参。 3) 更进一步的,建立一个名为TEST3.BAT的文件,内容如下: @echo off IF "%1" == "A" ECHO XIAO IF "%2" == "B" ECHO TIAN IF "%3" == "C" ECHO XIN 如果运行: C:\>TEST3 A B C 屏幕上会显示: XIAO TIAN XIN 如果运行: C:\>TEST3 A B 屏幕上会显示 XIAO TIAN 在这个命令执行过程中,DOS会将一个空字符串指定给参数%3。 2、IF-ERRORLEVEL 建立TEST4.BAT,内容如下: @ECHO OFF XCOPY C:\AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO 文件拷贝失败 IF ERRORLEVEL 0 ECHO 成功拷贝文件 然后执行文件: C:\>TEST4 如果文件拷贝成功,屏幕就会显示“成功拷贝文件”,否则就会显示“文件拷贝失败”。 IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。 因此下面的批处理文件是错误的: @ECHO OFF XCOPY C:\AUTOEXEC.BAT D:\ IF ERRORLEVEL 0 ECHO 成功拷贝文件 IF ERRORLEVEL 1 ECHO 未找到拷贝文件 IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拷贝操作 IF ERRORLEVEL 3 ECHO 预置错误阻止文件拷贝操作 IF ERRORLEVEL 4 ECHO 拷贝过程中写盘错误 无论拷贝是否成功,后面的: 未找到拷贝文件 用户通过ctrl-c中止拷贝操作 预置错误阻止文件拷贝操作 拷贝过程中写盘错误 都将显示出来。 以下就是几个常用命令的返回值及其代表的意义: backup 0 备份成功 1 未找到备份文件 2 文件共享冲突阻止备份完成 3 用户用ctrl-c中止备份 4 由于致命的错误使备份操作中止 diskcomp 0 盘比较相同 1 盘比较不同 2 用户通过ctrl-c中止比较操作 3 由于致命的错误使比较操作中止 4 预置错误中止比较 diskcopy 0 盘拷贝操作成功 1 非致命盘读/写错 2 用户通过ctrl-c结束拷贝操作 3 因致命的处理错误使盘拷贝中止 4 预置错误阻止拷贝操作 format 0 格式化成功 3 用户通过ctrl-c中止格式化处理 4 因致命的处理错误使格式化中止 5 在提示“proceed with format(y/n)?”下用户键入n结束 xcopy 0 成功拷贝文件 1 未找到拷贝文件 2 用户通过ctrl-c中止拷贝操作 4 预置错误阻止文件拷贝操作 5 拷贝过程中写盘错误 3、IF STRING1 == STRING2 建立TEST5.BAT,文件内容如下: @echo off IF "%1" == "A" FORMAT A: 执行: C:\>TEST5 A 屏幕上就出现是否将A:盘格式化的内容。 注意:为了防止参数为空的情况,一般会将字符串用双引号(或者其它符号,注意不能使用保留符号)括起来。 如:if [%1]==[A] 或者 if %1*==A* 5、GOTO 建立TEST6.BAT,文件内容如下: @ECHO OFF IF EXIST C]不包括隐藏文件)。 x0 |
引用 | 編輯
ydqdq
2004-08-21 03:20 |
3樓
▲ ▼ |
[原创][教程]如何在集成SP1的XP基础上制作完美VLK SP2版
刚才看了很多朋友关于集成SP2的问题,最多的是希望能够在VLK版原盘的基础上集成sp2,以保证集成后的完美。 其实完美不完美只是你的心理作用,因为集成sp2后,被替换的文件是相同的,也就是说你在原版的基础上集成出来的安装文件和在sp1基础上集成出来的安装文件,在效果上是一样的,唯一不同的只是在sp1基础上集成出来的有很多sp1时代留下的无用文件。有丰富集成SP经验的朋友都会知道的。 看到大家都在寻找VLK原版的安装盘,能找到固然是好事,找不到也不必那么费事,你要做的,就是删除那些SP1时代遗留的无用文件而已。我可以保证这样做出来的SP2安装盘和你在原盘基础上做出来的几乎是一模一样! 下面我就讲一下如何在集成SP1的VLK版基础上制作完美的VLK SP2集成版。当然,如果有原版的VLK的话就不在讨论之列了。 1、准备: 未集成sp1的任何版本的XP安装盘(其实只要i386目录就可以) 集成SP1的VLK版XP安装盘 中文SP2 RTM 2180 BEYONDCOMPARE2(比较文件和目录的工具) 2、集成: a 分别复制原版的XP安装盘和集成SP1的VLK安装盘的所有文件到硬盘目录 b 解压SP2包 c 分别集成SP2到两个安装盘里 3、比较: 打开BEYONDCOMPARE2,选择比较目录,分别指定两个版本安装盘的i386目录,确认后打开,这时你会看到软件的两边分别显示的是这两个目录内的文件。 选择菜单 “查看--显示过滤器--仅不匹配”,这时你会看到只在SP1版vlk这边保留了一部分文件。这些文件是sp1时代留下的文件,属于多余文件,直接删除即可。究竟是多少个文件,我已经删除了我做盘时的文件,现在也懒得去验证了。不放心的话你可以把他们移动到一个文件夹,以便恢复。 这时你再看看i386目录,因该是2766或者2767个文件(一个winnt.sif的差异),而且体积比未删除文件之前小了二十几M。删除根目录下的win51ip.sp1、SPNOTES.HTM连个文件。 现在这张盘和你在原版基础上集成SP的光盘基本没有任何区别了! 你可以安装测试一下,看看你的系统盘WINDOWS目录下的setuperr.log文件是否有报错信息,如果没有的话,恭喜你,你已经有了一张完美的集成SP2的VLK版XP安装光盘了!!! x0 |
引用 | 編輯
ydqdq
2004-08-22 12:19 |
4樓
▲ ▼ |
[转帖]制作集成SATA驱动程序的Windows XP安装光盘[长期置顶-技术贴]
制作集成SATA驱动程序的Windows XP安装光盘 [ 作者:余刘琅 转贴自:远望资讯·《玩电脑》 点击数:4012 更新时间:2004-7-23 ] SATA硬盘有不少优点,但安装操作系统实在麻烦,不仅要抓住机会按“F6”键加载STAT的驱动程序,还要制作带驱动程序的软盘。要命的是如果新机器没有配置软驱,那可就大眼瞪小眼了……来制作一张含SATA驱动程序的WinXP安装光盘吧。你会发现:原来加载SATA硬盘驱动其实很简单。 为了不再让WinXP的安装过程需要通过软盘加载SATA驱动程序,很多人都梦想主板的SATA驱动程序集成到安装光盘中,本文就来DIY一张集成SATA驱动程序的Windows XP安装光盘! Windows XP安装目录及文件准备 打开资源管理器,在一个拥有足够磁盘空间(空闲空间至少为700MB;如果将生成后的光盘镜像也放在该分区,则应当保证有一张光盘的双倍容量的空间,即1.4GB左右)的硬盘分区上创建一个文件夹,比如“D]可在主板制造商的网站或其它驱动程序下载站点(如:驱动之家“http://www.mydrivers.com”等)寻找与自己的主板芯片组相匹配的SATA驱动程序。 在D盘中建立一个新的目录(如“STATDRV”),然后将找到的SATA驱动程序文件全部拷贝到这个目录中(D:\SATADRV)。这里我们以Si3112的SATA驱动程序为例进行介绍。其它类型的SATA驱动程序的集成步骤几乎完全相同,所不同的仅仅是驱动程序文件名的不同而已。 在这个“D:\STATDRV”的文件夹中,一定会有一个扩展名为“.inf”或“.oem”的小文件,如“oemsetup.inf”或者“txtsetup.oem”等(本例中为“txtsetup.oem”),用记事本程序打开它,随后要用! 编辑“txtsetup.sif”文件 打开“D:\XPSATA\I386”文件夹,找到一个名为“txtsetup.sif” 的文件,这是Windows XP在安装时加载驱动程序的信息文件,用记事本程序打开它。 按“Ctrl+F”快捷键,打开查找对话框,以“[SourceDisksFiles]”为关键字进行查找(图1)。找到这个字段后,其下面已经存在一些内容(图2)。翻页到这个字段的末尾(注意:不是整个文件内容的末尾),添加以下内容:“si3112.sys = 1,,,,,,3_,4,1”。 (我用的是KT600的SATA驱动,里面有一个INF文件,我把也加到了上面: viamraid.sys = 1,,,,,,3_,4,1 VIAMRAID.INF = 1,,,,,,3_,4,1 ) 此主题相关图片如下: 图1 此主题相关图片如下: 图2 这里的“si3112.sys = 1,,,,,,3_,4,1”是描述驱动程序所在位置的代码。代码的格式为“filename_on_source=diskid,subdir,upgradecode,newinstallcode,spare,spare,newfilename”,在“txtsetup.sif”文件中的“[SourceDisksNames]”和“[WinntDirectories]”等字段中有详细的描述。有兴趣的朋友可以深入研究其它目录的对应关系,这里仅简单介绍。 此主题相关图片如下: 在实际操作时,绝对不可以照搬代码!特别是扩展名为SYS的文件“si3112.sys”,它是SATA驱动程序目录“D]”的字段。 该字段下的代码如:“id ="PCI\VEN_1095&DEV_3112 &SUBSYS_31121095", "Si3112"”。 切换到刚才打开的“txtsetup.sif”文件窗口中,以“[HardwareIdsDatabase]”为关键字进行搜索。找到后,将“txtsetup.oem”文件中“[HardwareIds.SICS.Si3112_XP]”字段下的代码拷贝到“txtsetup.sif”文件的“[HardwareIdsDatabase]”字段末尾。不过,我们需要更改一下代码的格式,如将“id ="PCI\VEN_1095&DEV _3112&SUBSYS_31121095", "Si3112"”改为:“PCI\VEN_1095&DEV_3112&SUBSYS_31121095 = "Si3112"”(其他代码修改方法相同),更改后的代码如下: PCI\VEN_1095&DEV_3112&SUBSYS_31121095 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_34238086 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_311215D9 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_B0021458 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_01661028 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_82141033 = "Si3112" PCI\VEN_1095&DEV_3512&SUBSYS_35121095 = "Si3112" PCI\VEN_1095&DEV_3512&SUBSYS_01661028 = "Si3112" Easy提示 不同SATA驱动程序的代码内容各不相同,应该根据具体情况灵活处理。 检查拷贝修改的内容是否与原有的内容重复,如果有,则把重复的一行删除。接着在“txtsetup.sif”文件查找“[SCSI.load]”和“[SCSI]”字段,添加如下内容: [SCSI.load] si3112 = si3112.sys,4 [SCSI] si3112 = "Silicon Image SiI 3112 SATALink Controller" 至此,我们就把自己的SATA驱动程序的相关信息添加到了Windows XP安装信息文件“txtsetup.sif”中了! 上述添加自定义SATA信息内容的步骤看似很复杂,其实也就是同时打开Windows XP安装文件目录中的“txtsetup.sif”文件和驱动程序目录中的“.inf”或“.oem”信息文件,然后将后者文件中相关字段下面的内容一一对应地移植到“txtsetup.sif”文件中。知道了方法,做起来就要容易些了! 修改“winnt.sif”文件内容 现在,我们已经完成了两个最重要的步骤:一是获取了SATA驱动程序文件,它们现在被保存在“D] OemPreinstall=Yes OemPnPDriversPath="STATDRV" 上述代码最后一句引号中的内容是指随后生成光盘时,驱动程序相对于光盘根目录所在的相对路径。由于我们打算把保存驱动程序的“D:\STATDRV”文件夹放到新生成的安装光盘的根目录,因此不必包含任何子目录路径(图3)。 此主题相关图片如下: 图3 将SATA驱动压缩到安装文件中 使用支持CAB文件格式的工具(如WinRAR等),将驱动程序目录中扩展名为SYS的文件添加到WindXP安装目录的CAB文件中。 这里我们可以使用Windows XP本身附带的一个命令行工具“makecab.exe”,它位于“C]此使用时不需要程序所在的路径。 在开始菜单中打开“运行”对话框,输入如下命令:“MAKECAB D:\STATDRV\SI3112.SYS D:\XP-STAT\i386\SI3112.SY_”(图4)。 (这一步,我将前面提到的INF文件也拷到了i386目录下,以防文件不够) 此主题相关图片如下: 图4 具体的驱动程序文件名和保存路径请根据实际情况灵活更改。 经过上述步骤,现在已经是万事俱备,只待刻盘了! 准备任意一款支持制作可引导型光盘的工具程序,如经典的软件“WinISO”、“ISOCommander”及国产软件“UltraISO”等均可。生成可引导光盘的方法有很多种,为避免大家到处寻找那些生僻的工具软件,这里以UltraISO为例,分若干个步骤进行: (1)制作原始安装光盘镜像 这一步的目的是方便从制作出来的光盘镜像中提取引导文件。其实也有专门的直接提取光盘引导区的工具,但操作稍麻烦,因此在这里多花费一两分钟还是很值得的。 将Windows XP的原始安装光盘放入光驱中,启动UltraISO,按“F5”键,或者执行“工具”菜单中的“制作光盘镜像文件”(图5),根据提示指定一个镜像文件的保存位置,随后程序会自动开始读取光盘并完成镜像文件的制作。 此主题相关图片如下: 图5 (2)提取光盘镜像中的引导信息 在UltraISO主界面中,执行“启动光盘”菜单中的“保存引导文件”命令(图6),将引导信息保存到硬盘上备用,比如保存为“D:\Boot.bin”。 此主题相关图片如下: 图6 (3)新建光盘镜像 在UltraISO的“文件”菜单中执行“新建”命令;从资源管理器中,将前面我们已经准备好的“D:\XPSTAT”文件夹中的所有文件拖入UltraISO右上侧的文件窗口中。 将“D:\STATDRV”目录直接拖放到UltraISO右上侧的文件窗口中,完成后在光盘的根目录中应当可以看到“STATDRV”的文件夹。 Easy提示 拖放时一定不要包含XPSTAT目录本身!也就是说,文件添加成功后,在光盘的根目录下应当可以看到“I386”文件夹。 (4)加载引导信息文件 执行“启动光盘”菜单中的“加载引导文件”命令,找到上一步提取的光盘镜像的引导文件,即“D]不需使用什么软盘,非常方便。 制作集成SATA驱动程序的Windows XP安装光盘是一件比较复杂的工作,任何一个小小的失误都可能导致无法正确地加载驱动程序。此外,不同主板附带的SATA驱动程序的文件名称、数量、信息文件的内容各不相同,在集成时不能硬套,只有举一反三才能成功。 [此贴子已经被yanghaijun于2004-8-21 9][转帖]制作集成SATA驱动程序的Windows XP安装光盘[长期置顶-技术贴] 制作集成SATA驱动程序的Windows XP安装光盘 [ 作者:余刘琅 转贴自:远望资讯·《玩电脑》 点击数:4012 更新时间:2004-7-23 ] SATA硬盘有不少优点,但安装操作系统实在麻烦,不仅要抓住机会按“F6”键加载STAT的驱动程序,还要制作带驱动程序的软盘。要命的是如果新机器没有配置软驱,那可就大眼瞪小眼了……来制作一张含SATA驱动程序的WinXP安装光盘吧。你会发现:原来加载SATA硬盘驱动其实很简单。 为了不再让WinXP的安装过程需要通过软盘加载SATA驱动程序,很多人都梦想主板的SATA驱动程序集成到安装光盘中,本文就来DIY一张集成SATA驱动程序的Windows XP安装光盘! Windows XP安装目录及文件准备 打开资源管理器,在一个拥有足够磁盘空间(空闲空间至少为700MB;如果将生成后的光盘镜像也放在该分区,则应当保证有一张光盘的双倍容量的空间,即1.4GB左右)的硬盘分区上创建一个文件夹,比如“D]准备驱动程序文件 一般随主板附送的驱动程序安装光盘中都有SATA的驱动程序。打开光盘目录,寻找名称中含有“SATA”或“RAID”字符的文件夹;也可在主板制造商的网站或其它驱动程序下载站点(如:驱动之家“ www.http 在D盘中建立一个新的目录(如“STATDRV”),然后将找到的SATA驱动程序文件全部拷贝到这个目录中(D]编辑“txtsetup.sif”文件 打开“D]”为关键字进行查找(图1)。找到这个字段后,其下面已经存在一些内容(图2)。翻页到这个字段的末尾(注意:不是整个文件内容的末尾),添加以下内容:“si3112.sys = 1,,,,,,3_,4,1”。 (我用的是KT600的SATA驱动,里面有一个INF文件,我把也加到了上面: viamraid.sys = 1,,,,,,3_,4,1 VIAMRAID.INF = 1,,,,,,3_,4,1 ) 此主题相关图片如下: 图2 这里的“si3112.sys = 1,,,,,,3_,4,1”是描述驱动程序所在位置的代码。代码的格式为“filename_on_source=diskid,subdir,upgradecode,newinstallcode,spare,spare,newfilename”,在“txtsetup.sif”文件中的“[SourceDisksNames]”和“[WinntDirectories]”等字段中有详细的描述。有兴趣的朋友可以深入研究其它目录的对应关系,这里仅简单介绍。 在实际操作时,绝对不可以照搬代码!特别是扩展名为SYS的文件“si3112.sys”,它是SATA驱动程序目录“D]”的字段。 该字段下的代码如:“id ="PCI\VEN_1095&DEV_3112 &SUBSYS_31121095", "Si3112"”。 切换到刚才打开的“txtsetup.sif”文件窗口中,以“[HardwareIdsDatabase]”为关键字进行搜索。找到后,将“txtsetup.oem”文件中“[HardwareIds.SICS.Si3112_XP]”字段下的代码拷贝到“txtsetup.sif”文件的“[HardwareIdsDatabase]”字段末尾。不过,我们需要更改一下代码的格式,如将“id ="PCI\VEN_1095&DEV _3112&SUBSYS_31121095", "Si3112"”改为:“PCI\VEN_1095&DEV_3112&SUBSYS_31121095 = "Si3112"”(其他代码修改方法相同),更改后的代码如下: PCI\VEN_1095&DEV_3112&SUBSYS_31121095 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_34238086 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_311215D9 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_B0021458 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_01661028 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_82141033 = "Si3112" PCI\VEN_1095&DEV_3512&SUBSYS_35121095 = "Si3112" PCI\VEN_1095&DEV_3512&SUBSYS_01661028 = "Si3112" Easy提示 不同SATA驱动程序的代码内容各不相同,应该根据具体情况灵活处理。 检查拷贝修改的内容是否与原有的内容重复,如果有,则把重复的一行删除。接着在“txtsetup.sif”文件查找“[SCSI.load]”和“[SCSI]”字段,添加如下内容: [SCSI.load] si3112 = si3112.sys,4 [SCSI] si3112 = "Silicon Image SiI 3112 SATALink Controller" 至此,我们就把自己的SATA驱动程序的相关信息添加到了Windows XP安装信息文件“txtsetup.sif”中了! 上述添加自定义SATA信息内容的步骤看似很复杂,其实也就是同时打开Windows XP安装文件目录中的“txtsetup.sif”文件和驱动程序目录中的“.inf”或“.oem”信息文件,然后将后者文件中相关字段下面的内容一一对应地移植到“txtsetup.sif”文件中。知道了方法,做起来就要容易些了! 修改“winnt.sif”文件内容 现在,我们已经完成了两个最重要的步骤:一是获取了SATA驱动程序文件,它们现在被保存在“D]Easy提示 在用记事本保存文件时,一定要输入完整的文件名,并且一定要用半角的双引号将文件名引起来,如“"winnt.sif"”,否则实际上生成的实际上仍然是个文本文件(Winnt.sif.txt),这将导致安装过程中出错,STAT驱动程序无法自动加载! 在“winnt.sif”文件中添加以下内容(如果已经存在部分内容,则应进行修改或添加,且保证每行的内容不要重复): [Unattended] OemPreinstall=Yes OemPnPDriversPath="STATDRV" 上述代码最后一句引号中的内容是指随后生成光盘时,驱动程序相对于光盘根目录所在的相对路径。由于我们打算把保存驱动程序的“D]此不必包含任何子目录路径(图3)。 图3 将SATA驱动压缩到安装文件中 使用支持CAB文件格式的工具(如WinRAR等),将驱动程序目录中扩展名为SYS的文件添加到WindXP安装目录的CAB文件中。 这里我们可以使用Windows XP本身附带的一个命令行工具“makecab.exe”,它位于“C]此使用时不需要程序所在的路径。 在开始菜单中打开“运行”对话框,输入如下命令:“MAKECAB D]这一步,我将前面提到的INF文件也拷到了i386目录下,以防文件不够) 此主题相关图片如下: 图5 (2)提取光盘镜像中的引导信息 在UltraISO主界面中,执行“启动光盘”菜单中的“保存引导文件”命令(图6),将引导信息保存到硬盘上备用,比如保存为“D]http://www.jujumao.com/skins/default/filetype/jpg.gif[/img] 此主题相关图片如下: 此主题相关图片如下: 图2 这里的“si3112.sys = 1,,,,,,3_,4,1”是描述驱动程序所在位置的代码。代码的格式为“filename_on_source=diskid,subdir,upgradecode,newinstallcode,spare,spare,newfilename”,在“txtsetup.sif”文件中的“[SourceDisksNames]”和“[WinntDirectories]”等字段中有详细的描述。有兴趣的朋友可以深入研究其它目录的对应关系,这里仅简单介绍。 在实际操作时,绝对不可以照搬代码!特别是扩展名为SYS的文件“si3112.sys”,它是SATA驱动程序目录“D]”的字段。 该字段下的代码如:“id ="PCI\VEN_1095&DEV_3112 &SUBSYS_31121095", "Si3112"”。 切换到刚才打开的“txtsetup.sif”文件窗口中,以“[HardwareIdsDatabase]”为关键字进行搜索。找到后,将“txtsetup.oem”文件中“[HardwareIds.SICS.Si3112_XP]”字段下的代码拷贝到“txtsetup.sif”文件的“[HardwareIdsDatabase]”字段末尾。不过,我们需要更改一下代码的格式,如将“id ="PCI\VEN_1095&DEV _3112&SUBSYS_31121095", "Si3112"”改为:“PCI\VEN_1095&DEV_3112&SUBSYS_31121095 = "Si3112"”(其他代码修改方法相同),更改后的代码如下: PCI\VEN_1095&DEV_3112&SUBSYS_31121095 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_34238086 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_311215D9 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_B0021458 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_01661028 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_82141033 = "Si3112" PCI\VEN_1095&DEV_3512&SUBSYS_35121095 = "Si3112" PCI\VEN_1095&DEV_3512&SUBSYS_01661028 = "Si3112" Easy提示 不同SATA驱动程序的代码内容各不相同,应该根据具体情况灵活处理。 检查拷贝修改的内容是否与原有的内容重复,如果有,则把重复的一行删除。接着在“txtsetup.sif”文件查找“[SCSI.load]”和“[SCSI]”字段,添加如下内容: [SCSI.load] si3112 = si3112.sys,4 [SCSI] si3112 = "Silicon Image SiI 3112 SATALink Controller" 至此,我们就把自己的SATA驱动程序的相关信息添加到了Windows XP安装信息文件“txtsetup.sif”中了! 上述添加自定义SATA信息内容的步骤看似很复杂,其实也就是同时打开Windows XP安装文件目录中的“txtsetup.sif”文件和驱动程序目录中的“.inf”或“.oem”信息文件,然后将后者文件中相关字段下面的内容一一对应地移植到“txtsetup.sif”文件中。知道了方法,做起来就要容易些了! 修改“winnt.sif”文件内容 现在,我们已经完成了两个最重要的步骤:一是获取了SATA驱动程序文件,它们现在被保存在“D]Easy提示 在用记事本保存文件时,一定要输入完整的文件名,并且一定要用半角的双引号将文件名引起来,如“"winnt.sif"”,否则实际上生成的实际上仍然是个文本文件(Winnt.sif.txt),这将导致安装过程中出错,STAT驱动程序无法自动加载! 在“winnt.sif”文件中添加以下内容(如果已经存在部分内容,则应进行修改或添加,且保证每行的内容不要重复): [Unattended] OemPreinstall=Yes OemPnPDriversPath="STATDRV" 上述代码最后一句引号中的内容是指随后生成光盘时,驱动程序相对于光盘根目录所在的相对路径。由于我们打算把保存驱动程序的“D]此不必包含任何子目录路径(图3)。 图3 将SATA驱动压缩到安装文件中 使用支持CAB文件格式的工具(如WinRAR等),将驱动程序目录中扩展名为SYS的文件添加到WindXP安装目录的CAB文件中。 这里我们可以使用Windows XP本身附带的一个命令行工具“makecab.exe”,它位于“C]此使用时不需要程序所在的路径。 在开始菜单中打开“运行”对话框,输入如下命令:“MAKECAB D]这一步,我将前面提到的INF文件也拷到了i386目录下,以防文件不够) 此主题相关图片如下: 图5 (2)提取光盘镜像中的引导信息 在UltraISO主界面中,执行“启动光盘”菜单中的“保存引导文件”命令(图6),将引导信息保存到硬盘上备用,比如保存为“D]http://www.jujumao.com/skins/default/filetype/jpg.gif[/img] 此主题相关图片如下: 此主题相关图片如下: 图2 这里的“si3112.sys = 1,,,,,,3_,4,1”是描述驱动程序所在位置的代码。代码的格式为“filename_on_source=diskid,subdir,upgradecode,newinstallcode,spare,spare,newfilename”,在“txtsetup.sif”文件中的“[SourceDisksNames]”和“[WinntDirectories]”等字段中有详细的描述。有兴趣的朋友可以深入研究其它目录的对应关系,这里仅简单介绍。 在实际操作时,绝对不可以照搬代码!特别是扩展名为SYS的文件“si3112.sys”,它是SATA驱动程序目录“D]”的字段。 该字段下的代码如:“id ="PCI\VEN_1095&DEV_3112 &SUBSYS_31121095", "Si3112"”。 切换到刚才打开的“txtsetup.sif”文件窗口中,以“[HardwareIdsDatabase]”为关键字进行搜索。找到后,将“txtsetup.oem”文件中“[HardwareIds.SICS.Si3112_XP]”字段下的代码拷贝到“txtsetup.sif”文件的“[HardwareIdsDatabase]”字段末尾。不过,我们需要更改一下代码的格式,如将“id ="PCI\VEN_1095&DEV _3112&SUBSYS_31121095", "Si3112"”改为:“PCI\VEN_1095&DEV_3112&SUBSYS_31121095 = "Si3112"”(其他代码修改方法相同),更改后的代码如下: PCI\VEN_1095&DEV_3112&SUBSYS_31121095 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_34238086 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_311215D9 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_B0021458 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_01661028 = "Si3112" PCI\VEN_1095&DEV_3112&SUBSYS_82141033 = "Si3112" PCI\VEN_1095&DEV_3512&SUBSYS_35121095 = "Si3112" PCI\VEN_1095&DEV_3512&SUBSYS_01661028 = "Si3112" Easy提示 不同SATA驱动程序的代码内容各不相同,应该根据具体情况灵活处理。 检查拷贝修改的内容是否与原有的内容重复,如果有,则把重复的一行删除。接着在“txtsetup.sif”文件查找“[SCSI.load]”和“[SCSI]”字段,添加如下内容: [SCSI.load] si3112 = si3112.sys,4 [SCSI] si3112 = "Silicon Image SiI 3112 SATALink Controller" 至此,我们就把自己的SATA驱动程序的相关信息添加到了Windows XP安装信息文件“txtsetup.sif”中了! 上述添加自定义SATA信息内容的步骤看似很复杂,其实也就是同时打开Windows XP安装文件目录中的“txtsetup.sif”文件和驱动程序目录中的“.inf”或“.oem”信息文件,然后将后者文件中相关字段下面的内容一一对应地移植到“txtsetup.sif”文件中。知道了方法,做起来就要容易些了! 修改“winnt.sif”文件内容 现在,我们已经完成了两个最重要的步骤:一是获取了SATA驱动程序文件,它们现在被保存在“D]Easy提示 在用记事本保存文件时,一定要输入完整的文件名,并且一定要用半角的双引号将文件名引起来,如“"winnt.sif"”,否则实际上生成的实际上仍然是个文本文件(Winnt.sif.txt),这将导致安装过程中出错,STAT驱动程序无法自动加载! 在“winnt.sif”文件中添加以下内容(如果已经存在部分内容,则应进行修改或添加,且保证每行的内容不要重复): [Unattended] OemPreinstall=Yes OemPnPDriversPath="STATDRV" 上述代码最后一句引号中的内容是指随后生成光盘时,驱动程序相对于光盘根目录所在的相对路径。由于我们打算把保存驱动程序的“D]此不必包含任何子目录路径(图3)。 图3 将SATA驱动压缩到安装文件中 使用支持CAB文件格式的工具(如WinRAR等),将驱动程序目录中扩展名为SYS的文件添加到WindXP安装目录的CAB文件中。 这里我们可以使用Windows XP本身附带的一个命令行工具“makecab.exe”,它位于“C]此使用时不需要程序所在的路径。 在开始菜单中打开“运行”对话框,输入如下命令:“MAKECAB D]这一步,我将前面提到的INF文件也拷到了i386目录下,以防文件不够) 此主题相关图片如下: 图5 (2)提取光盘镜像中的引导信息 在UltraISO主界面中,执行“启动光盘”菜单中的“保存引导文件”命令(图6),将引导信息保存到硬盘上备用,比如保存为“D]http://www.jujumao.com/skins/default/filetype/jpg.gif[/img] 此主题相关图片如下: [img]http] 图6 (3)新建光盘镜像 在UltraISO的“文件”菜单中执行“新建”命令;从资源管理器中,将前面我们已经准备好的“D]Easy提示 拖放时一定不要包含XPSTAT目录本身!也就是说,文件添加成功后,在光盘的根目录下应当可以看到“I386”文件夹。 (4)加载引导信息文件 执行“启动光盘”菜单中的“加载引导文件”命令,找到上一步提取的光盘镜像的引导文件,即“D](5)保存光盘镜像 按“CTRL+S”或者执行“文件”→“保存”命令,指定一个保存光盘镜像的路径和文件名(如“F](6)刻录安装光盘 使用Nero或者其他任意一款支持光盘镜像文件刻录的工具软件,将上述得到的光盘镜像文件(这里即F]不需使用什么软盘,非常方便。 制作集成SATA驱动程序的Windows XP安装光盘是一件比较复杂的工作,任何一个小小的失误都可能导致无法正确地加载驱动程序。此外,不同主板附带的SATA驱动程序的文件名称、数量、信息文件的内容各不相同,在集成时不能硬套,只有举一反三才能成功。 [此贴子已经被yanghaijun于2004-8-21 9] x0 |
引用 | 編輯
ydqdq
2004-08-22 12:35 |
5樓
▲ ▼ |
[转帖并完善]手把手教你写批处理
原文作者写东西很没有专业精神,写的文章简直是错误百出,而且啰里八索,如果不加以修改和完善,简直是误人子弟,因此,我在原文的基础上进行了修改,修正了大部分错误(当然,不可避免可能会有新的错误,希望高手发现后能够及时指出来)。 URL]可以是cmd)的文件就是批处理文件。 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:\BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:\batch,你就可以在任意位置运行所有你编写的批处理程序。 第四,在DOS和Win9x/Me系统下,C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运行批处理文件,每次系统启动时会自动运行该文件,你可以将系统每次启动时都要运行的命令放入该文件中,例如设置搜索路径,调入鼠标驱动和磁盘缓存,设置系统环境变量等。下面是一个运行于Windows 98下的autoexec.bat的示例: @ECHO OFF PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\UCDOS;C:\DOSTools;C:\SYSTOOLS;C:\WINTOOLS;C:\BATCH LH SMARTDRV.EXE /X LH DOSKEY.COM /INSERT LH CTMOUSE.EXE SET TEMP=D:\TEMP SET TMP=D:\TEMP 批处理的作用 简单的说,批处理的作用就是自动的连续执行多条命令。 这里先讲一个最简单的应用:在启动wps软件时,每次都必须执行(>前面内容表示DOS提示符): C:\>cd wps C:\WPS>spdos C:\WPS>py C:\WPS>wbx C:\WPS>wps 如果每次用WPS之前都这样执行一遍,您是不是觉得很麻烦呢? 好了,用批处理,就可以实现将这些麻烦的操作简单化,首先我们编写一个runwps.bat批处理文件,内容如下: @echo off c: cd\wps spdos py wbx wps cd\ 以后,我们每次进入wps,只需要运行runwps这个批处理文件即可。 常用命令 echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。 echo 表示显示此命令后的字符 echo off 表示在此语句后所有运行的命令都不显示命令行本身 @与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。 call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。 pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续 rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。 例1:用edit编辑a.bat文件,输入下列内容后存盘为c]相当于DOS命令的命令行参数),这需要用到一个参数表示符“%”。 %[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。 例2:C] "参数" == "字符串" 待执行的命令 参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。 例:if "%1"=="a" format a: 2、if [not] exist [路径\]文件名 待执行的命令 如果有指定的文件,则条件成立,运行命令,否则运行下一句。 如]用于选择),从而根据用户的选择返回不同的errorlevel,然后于if errorlevel配合,根据用户的选择运行不同的命令。 注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。 choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异): CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text] 描述]? 例:test.bat的内容如下(注意,用if errorlevel判断返回值时,要按返回值从高到低排列)]?” ,用户可选择d m e ,然后if语句根据用户的选择作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,批处理运行结束。 四、for 循环命令,只要条件符合,它将多次执行同一命令。 语法: 对一组文件中的每一个文件执行某个特定命令。 FOR %%variable IN (set) DO command [command-parameters] %%variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 command-parameters 为特定命令指定参数或命令行开关。 例如一个批处理文件中有一行] 命令 (2) test2.bat文件中的%1是参数,DOS允许传递9个批参数信息给批处理文件,分别为%1~%9(%0表示test2命令本身) ,这有点象编程中的实参和形参的关系,%1是形参,AUTOEXEC.BAT是实参。 3) 更进一步的,建立一个名为TEST3.BAT的文件,内容如下: @echo off IF "%1" == "A" ECHO XIAO IF "%2" == "B" ECHO TIAN IF "%3" == "C" ECHO XIN 如果运行: C:\>TEST3 A B C 屏幕上会显示: XIAO TIAN XIN 如果运行: C:\>TEST3 A B 屏幕上会显示 XIAO TIAN 在这个命令执行过程中,DOS会将一个空字符串指定给参数%3。 2、IF-ERRORLEVEL 建立TEST4.BAT,内容如下: @ECHO OFF XCOPY C:\AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO 文件拷贝失败 IF ERRORLEVEL 0 ECHO 成功拷贝文件 然后执行文件: C:\>TEST4 如果文件拷贝成功,屏幕就会显示“成功拷贝文件”,否则就会显示“文件拷贝失败”。 IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。 因此下面的批处理文件是错误的: @ECHO OFF XCOPY C:\AUTOEXEC.BAT D:\ IF ERRORLEVEL 0 ECHO 成功拷贝文件 IF ERRORLEVEL 1 ECHO 未找到拷贝文件 IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拷贝操作 IF ERRORLEVEL 3 ECHO 预置错误阻止文件拷贝操作 IF ERRORLEVEL 4 ECHO 拷贝过程中写盘错误 无论拷贝是否成功,后面的: 未找到拷贝文件 用户通过ctrl-c中止拷贝操作 预置错误阻止文件拷贝操作 拷贝过程中写盘错误 都将显示出来。 以下就是几个常用命令的返回值及其代表的意义: backup 0 备份成功 1 未找到备份文件 2 文件共享冲突阻止备份完成 3 用户用ctrl-c中止备份 4 由于致命的错误使备份操作中止 diskcomp 0 盘比较相同 1 盘比较不同 2 用户通过ctrl-c中止比较操作 3 由于致命的错误使比较操作中止 4 预置错误中止比较 diskcopy 0 盘拷贝操作成功 1 非致命盘读/写错 2 用户通过ctrl-c结束拷贝操作 3 因致命的处理错误使盘拷贝中止 4 预置错误阻止拷贝操作 format 0 格式化成功 3 用户通过ctrl-c中止格式化处理 4 因致命的处理错误使格式化中止 5 在提示“proceed with format(y/n)?”下用户键入n结束 xcopy 0 成功拷贝文件 1 未找到拷贝文件 2 用户通过ctrl-c中止拷贝操作 4 预置错误阻止文件拷贝操作 5 拷贝过程中写盘错误 3、IF STRING1 == STRING2 建立TEST5.BAT,文件内容如下: @echo off IF "%1" == "A" FORMAT A: 执行: C:\>TEST5 A 屏幕上就出现是否将A:盘格式化的内容。 注意:为了防止参数为空的情况,一般会将字符串用双引号(或者其它符号,注意不能使用保留符号)括起来。 如:if [%1]==[A] 或者 if %1*==A* 5、GOTO 建立TEST6.BAT,文件内容如下: @ECHO OFF IF EXIST C]不包括隐藏文件)。 x0 |
引用 | 編輯
ydqdq
2004-08-22 14:47 |
6樓
▲ ▼ |
[分享]AutoIt的一些脚本
近来自己写了一些程序自动安装脚本,放上来与大家一起分享,也想让大家给我提出些意见,以提高自己的水平,呵呵。注意:以下脚本仅适合:800x600显示模式! Alcohol120% 1.9.2.1705 retail,有效KEY注册。 ;无人参与模式 - 只显示进程栏,安装完成后不重新启动 run("setup.exe /passive /norestart") $i=1 while $i>0 $i=$i+1 If FileExists("C] UltraISO 7.2.1.839 SR-2中文纯净版,自动注册。 run("uiso72cn-s.exe") WinWaitActive("安装 - UltraISO") send("!n") WinWaitActive("安装 - UltraISO") Opt("MouseCoordMode",0) mouseclick("left",276,276,1) send("!n") WinWaitActive("安装 - UltraISO") send("!n") WinWaitActive("安装 - UltraISO") send("!n") WinWaitActive("安装 - UltraISO") send("!n") WinWaitActive("安装 - UltraISO") send("!i") WinWaitActive("安装 - UltraISO") Opt("MouseCoordMode",0) mouseclick("left",340,335,1) WinWaitActive("欢迎") Opt("MouseCoordMode",0) mouseclick("left",240,215,1) WinWaitActive("注册") send("FreeUser@ccf.com") Send("{TAB}") send("7A75") send("2A7A") send("0746") send("1988") send("{enter}") WinWaitActive("提示") send("{enter}") [此贴子已经被作者于2004-8-20 22] RealONE Player V2.0 Build 6.0.11.872 简体中文版+全功能补丁。此软件我觉得比那个10版本好,主要是10那个版本的全功能补丁在我的所有机子上失效(亮度调节破后看似有效,实际无效)。而这个版本则没问题。 run("RealOnePlayerV2GOLD_cn.exe") sleep(5000) ;正在准备安装 RealOne Player WinWaitActive("RealOne 安装向导") Opt("MouseCoordMode",0) mouseclick("left",185,242,1) send("!n") WinWaitActive("RealOne 安装向导") send("!a") WinWaitActive("RealOne 安装向导") Opt("MouseCoordMode",0) mouseclick("left",24,306,1) send("!n") WinWaitActive("RealOne 安装向导") Opt("MouseCoordMode",0) mouseclick("left",32,222,1) mouseclick("left",32,256,1) mouseclick("left",32,272,1) mouseclick("left",32,286,1) send("!n") $i=1 while $i>0 $i=$i+1 if FileExists("C:\Program Files\Real\RealOne Player\rpplugins\小乖e3210.dll") Then ExitLoop wend sleep(30000) WinWaitActive("RealOne 安装向导") send("!f") $i=1 while $i>0 if WinExists("RealOne 安装向导") then;直到窗口消失才到去注册 $i=$i+1 else $i=0 endif wend SLEEP(3000) $i=1 while $i>0 $i=$i+1 if WinExists("RealOne Player") then Exitloop;直到窗口消失才到去注册 wend SLEEP(3000) WinWaitActive("RealOne Player") send("{enter}") sleep(10000) WinWaitActive("RealOne Player") Opt("MouseCoordMode",0) mouseclick("left",338,437,1) ;send("{enter}") sleep(3000) if WinExists("取消安装 -- 网页对话框") then Opt("MouseCoordMode",0) mouseclick("left",172,162,1) endif sleep(10000) WinWaitActive("RealOne Player: 欢迎使用 RealOne Player") Opt("MouseCoordMode",0) mouseclick("left",285,15,1) send("x") ;开始注册过程 run("RealOnePatch_cn.exe") WinWaitActive("RealOne Activator Final by BetaMaster") send("{TAB 2}{ENTER}") WinWaitActive("RealOne Player Perfect Activator") Opt("MouseCoordMode",0) mouseclick("left",199,268,1) sleep(3000) send("{ENTER}") mouseclick("left",386,10,1) run("C:\Program Files\Real\RealOne Player\realplay.exe") WinWaitActive("RealOne Player: 欢迎使用 RealOne Player") send("!te") WinWaitActive("均衡器") Opt("MouseCoordMode",0) mouseclick("left",31,40,1) mouseclick("left",372,39,1) mouseclick("left",268,55,1) mouseclick("left",433,12,1) WinWaitActive("RealOne Player: 欢迎使用 RealOne Player") send("!tc") WinWaitActive("平滑转换") send("!o!c") WinWaitActive("RealOne Player: 欢迎使用 RealOne Player") send("!fx") [此贴子已经被作者于2004-8-20 22] NetTransport的脚本: blockinput(1) Run("NT2Setup.exe /silent") WinWaitActive("技巧 - Microsoft Internet Explorer") WinClose("技巧 - Microsoft Internet Explorer") FileCopy ("Crack.exe",@ProgramFilesDir&"\Xi\NetTransport 2\Crack.exe",1) Run(@ProgramFilesDir&"\Xi\NetTransport 2\Crack.exe",@ProgramFilesDir&"\Xi\NetTransport 2") WinWaitActive("NetTransportCrack") Send("{tab}{enter}") WinClose("NetTransportCrack") WinWaitClose("NetTransportCrack") FileDelete (@ProgramFilesDir&"\Xi\NetTransport 2\Crack.exe") [此贴子已经被作者于2004-8-21 9] x0 |
引用 | 編輯
ydqdq
2004-08-23 22:51 |
7樓
▲ ▼ |
[转帖]windows xp 中的cmd (命令提示符)
windows xp 中的cmd (命令提示符) CMD [/A | /U] [/Q] [/D] [/E] [/F] [/V] [[/S] [/C | /K] string] 其中:CMD是不可缺少的! /C 执行字符串指定的命令然后终断 /K 执行字符串指定的命令但保留 /S 在 /C 或 /K 后修改字符串处理(见下) /Q 关闭回应 /D 从注册表中停用执行 AutoRun 命令(见下) /A 使向内部管道或文件命令的输出成为 ANSI /U 使向内部管道或文件命令的输出成为 Unicode /T],/X 与 /E]可以使用 /E:OFF,为某一特定调用而停用扩展。您可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有调用的扩展,这要通过设置使用REGEDT32.EXE 的注册表中的一个或两个 REG_DWORD 值: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions 和/或 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions 到 0x1 或 0x0。用户特定设置比机器设置有优先权。命令行开关比注册表设置有优先权。以上是对于基本命令的介绍,下面包含的是命令行扩展部分。延迟变量环境扩展不按默认值启用。您可以用/V:ON 或 /V:OFF 命令行开关,为 CMD.EXE 的某个调用而启用或停用延迟环境变量扩充。 您可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有调用的完成,这要通过设置使用 REGEDT32.EXE 的注册表中的一个或两个 REG_DWORD 值: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedEXPansion 和/或 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedEXPansion 到 0x1 或 0x0。用户特定设置比机器设置有优先权。命令行开关比注册表设置有优先权。 如果延迟环境变量扩充被启用,惊叹号字符可在执行时间,被用来代替一个环境变量的数值。文件和目录名完成不按默认值启用。您可以用 /F:ON 或 /F:OFF命令行开关,为 CMD.EXE 的某个调用而启用或停用文件名完成。 您可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有调用的完成,这要通过设置使用 REGEDT32.EXE 的注册表中的一个或两个REG_DWORD 值: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar 和/或 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar 由一个控制字符的十六进制值作为一个特定参数(例如,0x4 是Ctrl-D,0x6 是 Ctrl-F)。 用户特定设置优先于机器设置。命令行开关优先于注册表设置。 如果完成是用 /F:ON 命令行开关启用的,两个要使用的控制符是: 目录名字完成用 Ctrl-D, 文件名完成用 Ctrl-F。 要停用注册表中的某个字符,请用空格(0x20)的数值,因为此字符不是控制字符。 如果键入两个控制字符中的一个,完成会被调用。完成功能将路径字符串带到光标的左边,如果没有通配符,将通配符附加到左边,并建立相符的路径列表。然后,显示第一个相符的路径。如果没有相符的路径,则发出嘟嘟声,不影响显示。之后,重复按同一个控制字符会循环显示相符路径的列表。将 Shift 键跟控制字符同时按下,会倒着显示列表。如果对该行进行了任何编辑,并再次按下控制字符,保存的相符路径的列表会被丢弃,新的会被生成。如果在文件和目录名完成之间切换,会发生同样现象。两个控制字符之间的唯一区别是文件完成字符符合文件和目录名,而目录完成字符只符合目录名。如果文件完成被用于内置式目录命令(CD、MD 或 RD),就会使用目录完成。 将引号将相符路径括起来,完成代码可以正确处理含有空格或其他特殊字符的文件名。同时,如果备份,然后从行内调用文件完成,完成被调用是位于光标右方的文字会被丢弃。 需要引号的特殊字符是]{}^=;!'+,`~ 下面是命令行扩展的详细应用方法介绍:熟悉dos的朋友会发现许多内容和dos相同。 1、DEL 或 ERASE 删除一个或数个文件。 DEL [/F] [/S] [/Q] [/A[[]attributes]] names ERASE [/F] [/S] [/Q] [/A[[]attributes]] names names 指定一个或数个文件或目录列表。通配符可被用来 删除多个文件。如果指定了一个目录,目录中的所 有文件都会被删除。 /P 删除每一个文件之前提示确认。 /F 强制删除只读文件。 /S 从所有子目录删除指定文件。 /Q 安静模式。删除全局通配符时,不要求确认。 /A 根据属性选择要删除的文件。 attributes R 只读文件 S 系统文件 H 隐藏文件 A 存档文件 - 表示“否”的前缀 如果命令扩展名被启用,DEL 和 ERASE 会如下改变] attr 指定控制台输出的颜色属性 颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为 前景。每个数字可以为以下任何值之一] [drive][path] CHDIR [..] CD [/D] [drive][path] CD [..] .. 指定要改成父目录。 键入 CD 驱动器]此有可能将目录名改为一个带有空格但不带有引号的子目录名。例如]path MD [drive]path 如果命令扩展名被启用,MKDIR 会如下改变: 如果需要,MKDIR 会在路径中创建中级目录。例如: 假设 \a 不存在,那么: mkdir \a\b\c\d 与: mkdir \a chdir \a mkdir b chdir b mkdir c chdir c mkdir d 相同。如果扩展名被停用,则需要键入 mkdir \a\b\c\d。 5、PROMPT 更改 cmd.exe 命令提示符。 PROMPT [text] text 指定新的命令提示符。 提示符可以由普通字符及下列特定代码组成] path 指定要成为当前目录的目录。 如果命令扩展名被启用,除了一般驱动器号和路径,PUSHD命令还接受网络路径。如果指定了网络路径,PUSHD 将创建一个指向指定网络资源的临时驱动器号,然后再用刚定义的驱动器号改变当前的驱动器和目录。可以从 Z: 往下分配临时驱动器号,使用找到的第一个没有用过的驱动器号。 7、POPD 命令选项到保存在 PUSHD 命令里的目录。 POPD 如果命令扩展名被启用,从推目录堆栈 POPD 驱动器时,POPD命令会删除 PUSHD 创建的临时驱动器号。 8、SET 显示、设置或删除 cmd.exe 环境变量。 SET [variable=[string]] variable 指定环境变量名。 string 指定要指派给变量的一系列字符串。 要显示当前环境变量,键入不带参数的 SET。 如果命令扩展名被启用,SET 会如下改变] /A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式评估器很简单并以递减的优先权顺序支持下列操作: () - 分组 ! ~ - - 一元运算符 * / % - 算数运算符 + - - 算数运算符 << >> - 逻辑移位 - 按位“与” ^ - 按位“异” | - 按位“或” = *= /= %= += -= - 赋值 &= ^= |= <<= >>= - 表达式分隔符 如果您使用任何逻辑或取余操作符, 您需要将表达式字符串用引号扩起来。在表达式中的任何非数字字符串键作为环境变量名称,这些环境变量名称的值已在使用前转换成数字。如果指定了一个环境变量名称,但未在当前环境中定义,那么值将被定为零。这使您可以使用环境变量值做计算而不用键入那些 % 符号来得到它们的值。如果 SET /A 在命令脚本外的命令行执行的,那么它显示该表达式的最后值。该分配的操作符在分配的操作符左边需要一个环境变量名称。除十六进制有 0x 前缀,八进制有 0 前缀的,数字值为十进位数字。因此, 0x12 与 18 和 022相同。请注意八进制公式可能很容易搞混: 08 和 09 是无效的数字,因为 8 和 9 不是有效的八进制位数。 /P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入行之前,显示指定的 promptString。promptString 可以是空的。 环境变量替换已如下增强: %PATH:str1=str2% 会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1"。 要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。 "str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的开始到 str1 剩余部分第一次出现的地方,都一直保持相配。 也可以为扩展名指定子字符串。 %PATH:~10,5% 会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏移量 10)字符开始的五个字符。如果没有指定长度,则采用默认值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,使用的数字则是环境变量数值长度加上指定的偏移量或长度。 %PATH]可以通过 CMD.EXE 的 /V 命令行开关而被启用/停用。 考虑到读取一行文本时所遇到的目前扩充的限制时,延迟环境变量扩充是很有用的,而不是执行的时候。以下例子说明直接变量扩充的问题: set VAR=before if "%VAR%" == "before" ( set VAR=after if "%VAR%" == "after" @echo If you see this, it worked ) 不会显示消息,因为在读到第一个 IF 语句时,BOTH IF 语句中的 %VAR% 会被代替;原因是: 它包含 IF 的文体,IF 是一个复合语句。所以,复合语句中的 IF 实际上是在比较 "before" 和"after",这两者永远不会相等。同样,以下这个例子也不会达到预期效果: set LIST= for %i in (*) do set LIST=%LIST% %i echo %LIST% 原因是它不会在目前的目录中建立一个文件列表,而只是将LIST 变量设成找到的最后一个文件。这也是因为 %LIST% 在FOR 语句被读取时,只被扩充了一次;而且,那时的 LIST 变量是空的。因此,我们真正执行的 FOR 循环是: for %i in (*) do set LIST= %i 这个循环继续将 LIST 设成找到的最后一个文件。 延迟环境变量扩充允许您使用一个不同的字符(惊叹号)在执行时间扩充环境变量。如果延迟的变量扩充被启用,可以将上面例子写成以下所示,以达到预期效果: set VAR=before if "%VAR%" == "before" ( set VAR=after if "!VAR!" == "after" @echo If you see this, it worked ) set LIST= for %i in (*) do set LIST=!LIST! %i echo %LIST% 如果命令扩展名被启用,有几个动态环境变量可以被扩展,但不会出现在 SET 显示的变量列表中。每次变量数值被扩展时,这些变量数值都会被动态计算。如果用户用这些名称中任何一个定义变量,那个定义会替代下面描述的动态定义: %CD% - 扩展到当前目录字符串。 %DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。 %TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。 %RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。 %ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。 %CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号。 %CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。 9、SETLOCAL 开始批处理文件中环境改动的本地化操作。在执行 SETLOCAL 之后所做的环境改动只限于批处理文件。要还原原先的设置,必须执行 ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个尚未执行的 SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行。 SETLOCAL 如果命令扩展名被启用,SETLOCAL 会如下改变: SETLOCAL 批命令现在可以接受可选参数: ENABLEEXTENSIONS / DISABLEEXTENSIONS 启动或停用命令处理器扩展名。详细信息,请参阅 CMD /?。 ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION 启动或停用延缓环境变量扩展名。详细信息,请 参阅 对SET的介绍 。 无论在 SETLOCAL 命令之前它们的设置是什么,这些修改会一直保留到匹配的 ENDLOCAL 命令。 如果有一个参数,SETLOCAL 命令将设置 ERRORLEVEL 的值。 如果有两个有效参数中的一个,该值则为零。用下列技巧,您可以在批脚本中使用这个来决定扩展名是否可用: VERIFY OTHER 2>nul SETLOCAL ENABLEEXTENSIONS IF ERRORLEVEL 1 echo Unable to enable extensions 这个方法之所以有效,是因为在 CMD.EXE 的旧版本上,SETLOCAL不设置 ERRORLEVEL 值。具有不正确参数的 VERIFY 命令将ERRORLEVEL 值初始化成非零值。 10、ENDLOCAL 结束批处理文件中环境改动的本地化操作。在执行ENDLOCAL 之后所做的环境改动不再仅限于批处理文件。批处理文件结束后,原先的设置无法还原。 ENDLOCAL 如果命令扩展名被启用,ENDLOCAL 会如下改变: 如果相应的 SETLOCAL 用新的 ENABLEEXTENSIONS 或DISABLEEXTENSIONS 选项启用或停用了命令扩展名,那么,在ENDLOCAL 之后,命令扩展名的启用/停用状态会还原到执行相应的 SETLOCAL 命令前的状态。 11、IF 执行批处理程序中的条件处理。 IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command NOT 指定只有条件为 false 的情况下, Windows XP 才 应该执行该命令。 ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的退出编码,指定条件为 true。 string1==string2 如果指定的文字字符串匹配,指定条件为 true。 EXIST filename 如果指定的文件名存在,指定条件为 true。 command 如果符合条件,指定要执行的命令。如果指定的 条件为 FALSE,命令后可跟一个执行 ELSE 关键字后的命令的 ELSE 命令。 ELSE 子句必须在 IF 之后出现在同一行上。例如]为 del 命令需要用一个新行终止,以下子句不会有效: IF EXIST filename. del filename. ELSE echo filename. missing 由于 ELSE 命令必须与 IF 命令的尾端在同一行上,以下子句也不会有效: IF EXIST filename. del filename. ELSE echo filename. missing 如果都放在同一行上,以下子句有效: IF EXIST filename. (del filename.) ELSE echo filename. missing 如果命令扩展名被启用,IF 会如下改变: IF string1 compare-op string2 command IF CMDEXTVERSION number command IF DEFINED variable command 其中,比较运算符可以是: EQU - 等于 NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于 及 /I 开关;如果该开关被指定,则说明要进行的字符串比较不分大小写。/I 开关可以用于 IF 的 string1==string2 的形式上。这些比较都是通用的;原因是,如果 string1 和 string2 都是由数字组成的,字符串会被转换成数字,进行数字比较。 CMDEXTVERSION 条件的作用跟 ERRORLEVEL 的一样,除了它是在跟与命令扩展名有关联的内部版本号比较。第一个版本是 1。每次对命令扩展名有相当大的增强时,版本号会增加一个。 命令扩展名被停用时,CMDEXTVERSION 条件不是真的。 如果已定义环境变量,DEFINED 条件的作用跟 EXISTS 的一样,除了它取得一个环境变量,返回的结果是 true。 如果没有名为 ERRORLEVEL 的环境变量,%ERRORLEVEL%会扩充为 ERROLEVEL 当前数值的字符串表达式;否则,您会得到其数值。运行程序后,以下语句说明 ERRORLEVEL 的用法]可以使用以上的数字比较: IF %ERRORLEVEL% LEQ 1 goto okay 如果没有名为 CMDCMDLINE 的环境变量,%CMDCMDLINE%将在 CMD.EXE 进行任何处理前扩充为传递给 CMD.EXE 的原始命令行;否则,您会得到其数值。 如果没有名为 CMDEXTVERSION 的环境变量,%CMDEXTVERSION% 会扩充为 CMDEXTVERSION 当前数值的 字串符表达式;否则,您会得到其数值。 12、FOR FOR %variable IN (set) DO command [command-parameters] %variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 command-parameters 为特定命令指定参数或命令行开关。 在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.如果命令扩展名被启用,下列额外的 FOR 命令格式会受到支持] 如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。 FOR /R [[drive]path] %variable IN (set) DO command [command-parameters] 检查以 [drive]path 为根的目录树,指向每个目录中的FOR 语句。如果在 /R 后没有指定目录,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。 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 (file-set) DO command [command-parameters] FOR /F ["options"] %variable IN ("string") DO command [command-parameters] FOR /F ["options"] %variable IN ('command') DO command [command-parameters] 或者,如果有 usebackq 选项] %variable IN (file-set) DO command [command-parameters] FOR /F ["options"] %variable IN ("string") DO command [command-parameters] FOR /F ["options"] %variable IN ('command') DO command [command-parameters] filenameset 为一个或多个文件名。继续到 filenameset 中的下一个文件之前,每份文件都已被打开、读取并经过处理。 处理包括读取文件,将其分成一行行的文字,然后将每行解析成零或更多的符号。然后用已找到的符号字符串变量值调用 For 循环。以默认方式,/F 通过每个文件的每一行中分开的第一个空白符号。跳过空白行。您可通过指定可选 "options"参数替代默认解析操作。这个带引号的字符串包括一个或多个指定不同解析选项的关键字。这些关键字为]此,以下例子: FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i 会枚举当前环境中的环境变量名称。 另外,FOR 变量参照的替换已被增强。您现在可以使用下列选项语法: ~I - 删除任何引号("),扩充 %I %~fI - 将 %I 扩充到一个完全合格的路径名 %~dI - 仅将 %I 扩充到一个驱动器号 %~pI - 仅将 %I 扩充到一个路径 %~nI - 仅将 %I 扩充到一个文件名 %~xI - 仅将 %I 扩充到一个文件扩展名 %~sI - 扩充的路径只含有短名 %~aI - 将 %I 扩充到文件的文件属性 %~tI - 将 %I 扩充到文件的日期/时间 %~zI - 将 %I 扩充到文件的大小 %~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩充到空字符串 可以组合修饰符来得到多重结果: %~dpI - 仅将 %I 扩充到一个驱动器号和路径 %~nxI - 仅将 %I 扩充到一个文件名和扩展名 %~fsI - 仅将 %I 扩充到一个带有短名的完整路径名 %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个驱动器号和路径。 %~ftzaI - 将 %I 扩充到类似输出线路的 DIR 在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名比较易读,而且避免与不分大小写的组合键混淆。 13、CALL 从批处理程序调用另一个批处理程序。 CALL [drive][path]filename [batch-parameters] batch-parameters 指定批处理程序所需的命令行信息。 如果命令扩展名被启用,CALL 会如下改变] 如果命令扩展名被启用,SHIFT 命令支持/n 命令行开关;该命令行开关告诉命令从第 n 个参数开始移位;n 介于零和八之间。例如: SHIFT /2 会将 %3 移位到 %2,将 %4 移位到 %3,等等;并且不影响 %0 和 %1。 15、GOTO 将 cmd.exe 导向到批处理程序中带标签的行。 GOTO label label 指定批处理程序中用作标签的文字字符串。 标签必须单独一行,并且以冒号打头。 如果命令扩展名被启用,GOTO 会如下改变: GOTO 命令现在接受目标标签 :EOF,这个标签将控制转移到当前批脚本文件的结尾。不定义就退出批脚本文件,这是一个容易的办法。有关能使该功能有用的 CALL 命令的扩展名描述,请参考CALL的介绍 16、START (同时包括对外部命令调用所做的更改) 启动另一个窗口运行指定的程序或命令。 START ["title"] [/Dpath] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] [/WAIT] [command/program] [parameters] "title" 在窗口标题栏中显示的标题。 path 起始目录 B 在不创建新窗口的情况下开始应用程序。 除非启动 ^C 处理,否则该应用程序会忽略 ^C 处理;^Break 是唯一可以中断该应用程序的方式 I 新环境是传递给 cmd.exe 的原始环境,而不是当前环境 MIN 开始时窗口最小化 MAX 开始时窗口最大化 SEPARATE 在分开的空间内开始 16 位 Windows 程序 SHARED 在分共享的空间内开始 16 位 Windows 程序 LOW 在 IDLE 优先级类别开始应用程序 NORMAL 在 NORMAL 优先级类别开始应用程序 HIGH 在 HIGH 优先级类别开始应用程序 REALTIME 在 REALTIME 优先级类别开始应用程序 ABOVENORMAL 在 ABOVENORMAL 优先级类别开始应用程序 BELOWNORMAL 在 BELOWNORMAL 优先级类别开始应用程序 WAIT 启动应用程序并等候它结束 command/program 如果是内部 cmd 命令或批文件,那么该命令处理器是用 /K 命令行开关运行 cmd.exe 的。这表示该窗口在命令运行后仍然存在。 如果不是内部 cmd 命令或批文件,则是一个程序,并作为窗口应用程序或控制台应用程序运行。 parameters 这些为传送到命令/程序的参数如果命令扩展名被启用,通过命令行或 START 命令的外部命令调用会如下改变: 将文件名作为命令键入,非可执行文件 可以通过文件关联调用。 (例如, WORD.DOC 会调用跟 .DOC 文件扩展名关联的应用程序)。 关于如何从命令脚本内部创建这些关联,请参阅 ASSOC 和FTYPE 命令。 执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。 如果执行的命令行的第一个符号是不带扩展名或路径修饰符的字符串 "CMD","CMD" 会被COMSPEC 变量的数值所替换。这防止从当前目录抓出 CMD.EXE。 如果执行的命令行的第一个符号没有扩展名,CMD.EXE 会使用PATHEXT 环境变量的数值来决定要以什么顺序寻找哪些扩展名。PATHEXT 变量的默认值是: .COM;.EXE;.BAT;.CMD 请注意,该语法跟 PATH 变量的一样,分号隔开不同的元素。 查找可执行文件时,如果没有相配的扩展名,看一看该名称是否与目录名相配。如果确实如此,START 会在那个路径上调用EXPlorer。如果从命令行执行,则等同于对那个路径作 CD /D。 windows xp 中的cmd 2004-8-8 9:27:31 作者:Yesky 来源:天极Yesky 【字体:大 中 小】 17、ASSOC 显示或修改文件扩展名关联ASSOC [.ext[=[fileType> .ext 指定跟文件类型关联的文件扩展名 fileType 指定跟文件扩展名关联的文件类型 键入 ASSOC 而不带参数,显示当前文件关联。如果只用文件扩展名调用 ASSOC,则显示那个文件扩展名的当前文件关联。如果不为文件类型指定任何参数,命令会删除文件扩展名的关联。 18、FTYPE 显示或修改用在文件扩展名关联中的文件类型FTYPE [fileType[=[openCommandString> fileType 指定要检查或改变的文件类型 openCommandString 指定调用这类文件时要使用的开放式命令。 键入 FTYPE 而不带参数来显示当前有定义的开放式命令字符串的文件类型。 FTYPE 仅用一个文件类型启用时,它显示那个文件类型目前的开放式命令字符串。如果不为开放式命令字符串指定,FTYPE 命令将删除那个文件类型的开放式命令字符串。在一个开放式命令字符串之内,命令字符串 %0 或 %1 被通过关联调用的文件名所代替。%* 得到所有的参数,%2 得到第一个参数,%3 得到第二个,等等。%~n 得到其余所有以 nth 参数打头的参数;n 可以是从 2 到 9 的数字。例如: ASSOC .pl=PerlScript FTYPE PerlScript=perl.exe %1 %* 允许您启用以下 Perl 脚本: script.pl 1 2 3 如果不想键入扩展名,则键入以下字符串: set PATHEXT=.pl;%PATHEXT% 被启动的脚本如下: script 1 2 3 x0 |
引用 | 編輯
ydqdq
2004-08-29 02:05 |
8樓
▲ ▼ |
现在用Ghost的朋友很多,但也有朋友很想了解更多的GHOST,现贴出来共享大家研究。
GHOST使用详解 一、系统备份 使用Ghost进行系统备份,有整个硬盘(Disk)和分区硬盘(Partition)两种方式。在菜单中点击Local(本地)项,在右面弹出的菜单中有3个子项,其中Disk表示备份整个硬盘(即克隆)、Partition表示备份硬盘的单个分区、Check表示检查硬盘或备份的文件,查看是否可能因分区、硬盘被破坏等造成备份或还原失败。分区备份作为个人用户来保存系统数据,特别是在恢复和复制系统分区时具有实用价值。 选Local→Partition→To Image菜单,弹出硬盘选择窗口,开始分区备份操作。点击该窗口中白色的硬盘信息条,选择硬盘,进入窗口,选择要操作的分区(若没有鼠标,可用键盘进行操作:TAB键进行切换,回车键进行确认,方向键进行选择)。 在弹出的窗口中选择备份储存的目录路径并输入备份文件名称,注意备份文件的名称带有GHO的后缀名。 接下来,程序会询问是否压缩备份数据,并给出3个选择:No表示不压缩,Fast表示压缩比例小而执行备份速度较快,High就是压缩比例高但执行备份速度相当慢。最后选择Yes按钮即开始进行分区硬盘的备份。Ghost备份的速度相当快,不用久等就可以完成,备份的文件以GHO后缀名储存在设定的目录中。 二、系统克隆 硬盘的克隆就是对整个硬盘的备份和还原。选择菜单Local→Disk→To Disk,在弹出的窗口中选择源硬盘(第一个硬盘),然后选择要复制到的目标硬盘(第二个硬盘)。注意,可以设置目标硬盘各个分区的大小,Ghost可以自动对目标硬盘按设定的分区数值进行分区和格式化。选择Yes开始执行。 Ghost能将目标硬盘复制得与源硬盘几乎完全一样,并实现分区、格式化、复制系统和文件一步完成。只是要注意目标硬盘不能太小,必须能将源硬盘的数据内容装下。 Ghost还提供了一项硬盘备份功能,就是将整个硬盘的数据备份成一个文件保存在硬盘上(菜单Local→Disk→To Image),然后就可以随时还原到其他硬盘或源硬盘上,这对安装多个系统很方便。使用方法与分区备份相似。 三、系统还原 如果硬盘中备份的分区数据受到损坏,用一般数据修复方法不能修复,以及系统被破坏后不能启动,都可以用备份的数据进行完全的复原而无须重新安装程序或系统。当然,也可以将备份还原到另一个硬盘上。 要恢复备份的分区,就在界面中选择菜单Local→Partition→From Image,在弹出窗口中选择还原的备份文件,再选择还原的硬盘和分区,点击Yes按钮即可。软件特性 存贮介质 Ghost 支持的存储介质超出了我们的想象,它支持对等LPT接口、对等USB接口、对等TCP/IP接口、SCSI磁带机、便携式设备(JAZ、ZIP、MO等)、光盘刻录机(CDR、CDRW)等。而这些特性不需要任何外带的驱动程序和软件,只需一张软盘就可以做到!特别是对光盘刻录机的支持,如今的刻录机和空白光盘都十分便宜,非常适合作备份的用途。 四、兼容性 Ghost 对现有的操作系统都有良好的支持,包括FAT16、FAT32、NTFS、HPFS、UNIX、NOVELL等文件存储格式。同以前版本不同的是,Ghost 2001加入了对Linux EX2的支持(FIFO文件存储格式),这也就意味着Linux的用户也可以用Ghost来备份系统了。 五、配套软件支持 Ghost浏览器:在以前的Ghost版本中,我们只能对系统进行简单的备份、复制、还原,要恢复单个的文件和文件夹还要使用外带的GhostEXP软件。现在,Symantec公司已经将Ghost浏览器整合在软件中。Ghost浏览器采用类似于资源管理器的界面,通过它,我们可以方便迅速地在备份包中找出我们想要的文件和文件夹并还原。 Gdisk:Gdisk是一个新加入的实用工具,它彻底取代了FDisk和Format: * 快速格式化。 * 隐藏和显示分区的能力。此功能允许一个以上的主DOS分区,并且每个分区上的操作系统有不同的版本。隐藏分区的能力使计算机习惯于引导到选定的可引导分区,忽略其他隐藏分区中相同操作系统的安装。 * 全面的分区报告。 * 高度安全的磁盘擦除。提供符合美国国防部标准和更高安全标准的磁盘擦除选项。 和使用交互式菜单的FDisk不同,GDisk是由命令行驱动的。这提供了更快的配置磁盘分区和在批处理文件中定义GDisk操作的能力。但与此同时,几十个参数会令普通用户头疼,因此笔者不推荐一般用户使用,Symantec公司也应该推出相应的GUI(图形用户界面)控制台以方便用户使用。具体的参数说明可以用命令行gdisk/?了解。 Live Update Live Update是Symantec公司软件的一个通用升级程序,它能够检查当前系统中已安装的Symantec软件,并且通过英特网对软件进行在线升级。 在安装Ghost 2001时,安装程序自动升级了Live Update程序的版本。 六、附加的命令行参数:(限Ghost的无人备份/恢复/复制) 其实Ghost 2001的功能远远不止它主程序中显示的那些,Ghost可以在其启动的命令行中添加众多参数以实现更多的功能。命令行参数在使用时颇为复杂,不过我们可以制作批处理文件,从而“一劳永逸”(类似于无人安装Windows 98和Windows 2000)现在让我们来了解一些常用的参数(了解更加详细的参数介绍可查看Ghost的帮助文件)。 1.-rb 本次Ghost操作结束退出时自动重启。这样,在复制系统时就可以放心离开了。 2.-fx 本次Ghost操作结束退出时自动回到DOS提示符。 3.-sure 对所有要求确认的提示或警告一律回答“Yes”。此参数有一定危险性,只建议高级用户使用。 4.-fro 如果源分区发现坏簇,则略过提示强制拷贝。此参数可用于试着挽救硬盘坏道中的数据。 5.@filename 在filename中指定txt文件。txt文件中为Ghost的附加参数,这样做可以不受DOS命令行150个字符的限制。 6.-f32 将源FAT16分区拷贝后转换成FAT32(前提是目标分区不小于2G)。WinNT 4和Windows95、97用户慎用。 7.-bootcd 当直接向光盘中备份文件时,此选项可以使光盘变成可引导。此过程需要放入启动盘。 8.-fatlimit 将NT的FAT16分区限制在2G。此参数在复制Windows NT分区,且不想使用64k/簇的FAT16时非常有用。 9.-span 分卷参数。当空间不足时提示复制到另一个分区的另一个备份包。 10.-auto 分卷拷贝时不提示就自动赋予一个文件名继续执行。 11.-crcignore 忽略备份包中的CRC ERROR。除非需要抢救备份包中的数据,否则不要使用此参数,以防数据错误。 12.-ia 全部映像。Ghost会对硬盘上所有的分区逐个进行备份。 13.-ial 全部映像,类似于-ia参数,对Linux分区逐个进行备份。 14.-id 全部映像。类似于-ia参数,但包含分区的引导信息。 15.-quiet 操作过程中禁止状态更新和用户干预。 16.-script 可以执行多个Ghost命令行。命令行存放在指定的文件中。 17.-span 启用映像文件的跨卷功能。 18.-split=x 将备份包划分成多个分卷,每个分卷的大小为x兆。这个功能非常实用,用于大型备份包复制到移动式存储设备上,例如将一个1.9G的备份包复制到3张刻录盘上。 19.-z 将磁盘或分区上的内容保存到映像文件时进行压缩。-z或-z1为低压缩率(快速);-z2为高压缩率(中速);-z3至-z9压缩率依次增大(速度依次减慢)。 20.-clone 这是实现Ghost无人备份/恢复的核心参数。使用语法为: -clone,MODE=(operation),SRC=(source),DST=(destination),[SZE(size),SZE(size)......] 此参数行较为复杂,且各参数之间不能含有空格。其中operation意为操作类型,值可取:copy:磁盘到磁盘;load:文件到磁盘;dump:磁盘到文件;pcopy:分区到分区;pload:文件到分区;pdump:分区到文件。Source意为操作源,值可取:驱动器号,从1开始;或者为文件名,需要写绝对路径。Destination意为目标位置,值可取:驱动器号,从1开始;或者为文件名,需要写绝对路径;@CDx,刻录机,x表示刻录机的驱动器号,从1开始。 举例说明: 命令行参数:ghostpe.exe -clone,mode=copy,src=1,dst=2 完成操作:将本地磁盘1复制到本地磁盘2。 命令行参数:ghostpe.exe -clone,mode=pcopy,src=1]含Config.sys,Autoexec.bat,Command.com,Io.sys,Ghost.exe文件(可以用windows做启动盘的程序完成)。 Autoexec.bat可以包含以下命令: Ghost.exe -clone,mode=pload,src=d:\bac.gho,dst=1:1 -fx -sure -rb 利用在d盘的文件自动还原,结束以后自动跳出ghost并且重新启动。 开机自动做C区的备份,在D区生成备份文件bac.gho。 ghost.exe -clone,mode=pdump,src=1:1,dst=d:\bac.gho -fx -sure -rb 还原光盘 包含文件:Config.sys,Autoexec.bat,Mscdex.exe(CDROM执行程序),Oakcdrom.sys(ATAPI CDROM兼容驱动程序),Ghost.exe Config.sys内容为: DEVICE=OAKCDROM.SYS /D:IDECD001 Autoexec.bat内容为: MSCDEX.EXE /D:IDECE001 /L:Z Ghost -clone,mode=load,src=z:\bac.gho,dst=1:1 -sure -rb 可以根据下面的具体说明修改实例 -clone 在使用时必须加入参数,它同时也是所有的switch{batch switch}里最实用的一种,下面是clone所定义的参数 -clone, mode={copy│load│dump│pcopy│pload│pdump}, src={drive│file│driveartition}, dst={drive│file│driveartition} mode指定要使用哪种clone所提供的命令 copy 硬盘到硬盘的复制(disk to disk copy)load 文件还原到硬盘(file to disk load)dump 将硬盘做成映像文件(disk to file dump)pcopy 分区到分区的复制(partition to partition copy)pload 文件还原到分区(file to partition load)pdump 分区备份成映像文件(partition to file dump)src指定了ghost运行时使用的源分区的位置模式及其意义]为最高压缩率非常耗时,而压缩率又没有明显的提高。 7.在新安装了软件和硬件后,最好重新制作映像文件,否则很可能在恢复后出现一些莫名其妙的错误。 x0 |
引用 | 編輯
ydqdq
2004-08-29 02:08 |
9樓
▲ ▼ |
也有朋友很想了解更多的GHOST,现贴出来共大家研究。
Ghost完全自动安装 准备工作: 1.把Ghost.exe拷到除C盘外的其他盘里(如D盘),并在同一目录下,新建文件Backup.bat。 2.用记事本打开这个文件,在其中输入 @echo off ghost.exe -clone,mode=pdump,src=1:1,dst=D:\win98.gho -z9 -sure 然后,存盘退出 3.新建文件Renew.bat。输入 @echo off ghost.exe -clone,mode=pload,src=D:\win98.gh1,dst=1:1 -sure -rb 存盘退出 运用: 1.先双击运行Backup.bat。系统就会自动备份了,备完份之后,你就可以一劳永逸了。 2. 在任何时候,如果想恢复系统,只需要双击Renew.bat,系统会自动完成更新并自动重启。 3. 注意:在恢复之前,别忘了备份你的其他文件。 附:Ghost自动安装命令释义 -clone:采用全自动的克隆方式 mode=pdump/pload:备份模式还是恢复模式 src=:源分区 dst=:目标分区 1:1:表示物理盘1的第1个逻辑分区 -z9:备份时采用高压缩比,以减少空间占用 -sure:不出现“是否进行”的对话框 -rb:恢复后自动重启 x0 |
引用 | 編輯
ydqdq
2004-09-14 18:44 |
10樓
▲ |
[konan原创]自动安装脚本--制作入门 AutoIT
最近JUJU猫坛里不少朋友开始喜欢并学习制作脚本来完成软件的自动安装。其实第一功臣是杨兄,要不是他做的软件安装管理器,一个一个软件安装起来也是够烦人了。用AutoIt有一段时间了,在此之前还用过不少脚本类的软件,但我不是网游一族,只是想在工作里偷懒罢了。现在开始写这个自动安装脚本的文章,也是少有的在网上写东西,自己倒也不精,只算是个抛砖引玉了。 一、制作目的和原则 说到自动安装,其目的就是模拟手动操作,自动完成对指定按键的点击和输入指定内容,处理可能出现的情况,最终完成程序的安装和设置。 也许有人说这样就明白了,用AutoIt里的MouseClick、Send来完成点击和输入,只要抓好点击的坐标就一切搞定了啊!这当然不能说不是个办法,但做出来的成品可能只能在你自己的电脑上能用,说不定下一次你自己也没法用了。因为每个人的电脑是不一样的,安装窗体在不同分辨率下的位置也是不一样的,如果用这样做的脚本在别人电脑上操作,就会看到鼠标经过N次狂奔后,打开了M个窗口,却没有点到你要的东西(用来整人倒不错)。 我们的目的是让脚本能有效的在其他人电脑上运行安装,处理遇到的情况,完成设置或注册等动作,然后结束。所以制作的原则就是通用、精确和可靠 1、 尽量少的用鼠标模拟点击的方法,实在用要也要做到保证点击坐标的可靠 原因上面都说了,但有时不得已用到点击坐标时怎么办呢,你先想想吧。后面告诉你我的办法 2、 尽量少用sleep等待语句,而换用其它准确的时间判断语句 有的朋友喜欢用sleep在一个操作后等待一下,来保证脚本的可靠性,其实这却是个不可靠的做法。因为每台电脑的性能有所差异,在不同的情况下也有差异,在你的电脑上制作脚本时要停顿5秒的,在一台第旧的电脑上可能要等待20秒也不一定。AutoIt里是有解决方法的,比如winwaitactive,winwaitclose等,再不行自己写判断啦! 3、 尽量考虑可能出现的情况 有的程序在安装时会提出一些要求,比如需要更新什么文件或进行什么操作,而且未必在每台电脑上安装时都会出现,这就要我们在做好脚本后多在不同环境测试一下,考虑到一些常见的问题 二、如何学好AutoIt 对于AutoIt我也是个菜鸟,没有什么经验可谈,但我觉得有三点一定要做到 1、充分利用帮助文件。AutoIt的帮助文件写的非常详细,索引和搜索功能使它在查询上非常方便,而且每个命令最后都有例子。有什么问题先找它问问。 有的朋友经常说自己英文不好,其实我的也不怎么样,正好利用这个机会学习一下,再说很多软件在使用时都要用到英文,这方面加强还是有必要的。 2、经常实践。写脚本和编程有几分相似,经常实践,特别在学习新命令时 3、到AutoIt论坛请教。http]练习一下吧。 4、开拓思路,变换方法。和编程一样,很多问题不一定只有一个解决方法,普通方法解决不了时还可以多试试其它方法。 三、分析一个典型安装脚本 先让我们来看“极点中文20040813十全大补版”的安装过程 第一步 “欢迎使用 极点中文平台 安装向导” 点击“下一步”——使用快捷键Alt+N 第二步 “使用许可协议” 点击“接受本协议”——使用快捷键Alt+A 点击“下一步”——使用快捷键Alt+N 第三步 “信息” 点击“下一步”——使用快捷键Alt+N 第四步 “选择目标文件夹” 假如默认路径 点击“下一步”——使用快捷键Alt+N 如果曾经安装过极点,原来的文件夹存在则会出现下面的窗口 点击“是”——使用快捷键Alt+Y 第五步 “选择组件” 假如默认组件 点击“下一步”——使用快捷键Alt+N 第六步 “选择开始菜单文件夹” 假如默认菜单文件夹 点击“下一步”——使用快捷键Alt+N 第七步 “准备安装” 点击“安装”——使用快捷键Alt+I 等待安装进度 第八步 “完成” 取消“查看 freewb.chm”和“运行输入法调整工具”前的对勾 ——用TAB切换到对应项,再用点击空格进行取消 点击“完成”——使用快捷键Alt+F 上面的步骤已经非常清楚的告诉我们应该怎样做,下面我们只需要把上面的步骤做成脚本。脚本里我们需要用到的命令有: 1 、Run(“文件名”)——运行与脚本同一目录下的指定文件 2 、WinWaitActive(“窗体标题”,”窗体文本”)——等待指定窗体出现 3 、Send(“”)——发送模拟按键。Alt+n用!n表示 4、WinActive(“ 窗体标题”,”窗体文本”)——判断指定窗体是否激活 下面是完整的脚本 ; ---------------------------------------------------------------------------- ; 脚本功能 ; 请将下载的"极点中文20040813十全大补版"改名为"JDWB040813.exe" ; 并将其与脚本文件放在同一文件夹下 ; ---------------------------------------------------------------------------- run("jdwb040813.exe") ;运行“jdwb040813.exe” WinWaitActive("安装 - 极点中文输入平台","安装向导") ;等待窗体"安装 - 极点中文输入平台","安装向导"出现 send("!n") ;发送快捷键Alt+N WinWaitActive("安装 - 极点中文输入平台","使用许可协议") send("!a") ;发送快捷键Alt+A send("!n") WinWaitActive("安装 - 极点中文输入平台","信息") send("!n") WinWaitActive("安装 - 极点中文输入平台","选择目标文件夹") send("!n") if winactive("目录已存在") Then ;如果窗体"目录已存在"是激活状态 send("!y") ;发送快捷键Alt+Y EndIf WinWaitActive("安装 - 极点中文输入平台","选择组件") ;如果选择其他安装方式请在这里修改 send("!n") WinWaitActive("安装 - 极点中文输入平台","选择开始菜单文件夹") send("!n") WinWaitActive("安装 - 极点中文输入平台","准备安装") send("!i") ;发送快捷键Alt+I WinWaitActive("安装 - 极点中文输入平台","完成 极点中文输入平台 安装向导") send("{SPACE}{TAB}{SPACE}{TAB}") ;默认状态下“查看 freewb.chm”获得焦点,发送空格将勾去掉。 ;用TAB切换到下一个复选框 Send("!f") ;发送快捷键Alt+F ; ---------------------------------------------------------------------------- 脚本中“;”分号开头的部分是注释。 所有这些命令都能在帮助文件里找到具体介绍。 四、从示例脚本考虑几个问题 1、 用Autoit Window Spy精确取得窗体信息 在开始菜单里依次选择“程序—AutoIt V3—Autoit Window Spy”。“Autoit Window Spy”是AutoIt附带的一个获取信息的工具。启动后一般它都在最上面,鼠标激活要查看信息的窗体,“Autoit Window Spy”窗体里将显示激活窗体在鼠标下的信息,如图,这时可以用Ctrl+Alt+F使窗口内容暂停,便于从窗体里复制需要的内容 2、 WinWaitActive的使用 WinWaitActive(“窗体标题”,”窗体文本”)——等待指定窗体出现。使用这个命令,在AutoIt默认的情况下,窗体标题可以是实际标题的一部分,比如上面的命令也可以用 WinWaitActive("安装","信息") 但这样在匹配时精确程度也下降了,也可能匹配到另一个标题带“安装”,文本包含“信息”的窗体,所以在使用这个命令时窗体标题尽量用完整标题,最好从Autoit Window Spy,窗体文本选择当前窗体里有代表性的文本。 3、 Send的使用 Send命令发送模拟按键是输出字符的首选。它的应用比较灵活 (1) 组合按键:^ 表示Ctrl,! 表示 Alt,+ 表示Shift,#表示 Win 比如上面完成时Send(“!f”) (2) 多个Send命令可以合写,一次完成。 (3) Send命令是不能输出中文的,其实Unicode都是不能输出的。 Send命令中有很多特殊按键,请参看帮助文件。 4、 修改默认路径(ControlSetText和ControlSend) 如何"选择目标文件夹"中的默认路径?假如我们不希望它安装在系统盘,而要安装在“D]ControlSetText ( " 窗体标题", "窗体文本", "要设置文字的控件类名或控件精确标题", "需要设置的文字" ) ControlSetText功能是设置窗体里指定控件的文本,不论窗体或控件这时的状态是否激活。 注意ControlSetText 是可以输出中文的。 控件类名可以用Autoit Window Spy取得如上图,经查找输入框的类名为“TEdit1” 上面的要求可写命令为 ControlSetText("安装 - 极点中文输入平台","选择目标文件夹","TEdit1"," D]ControlSend ( " 窗体标题", "窗体文本", "接收文字的控件类名或控件精确标题", "需要输入的文字" ) ControlSend功能和ControlSetText类似,向窗体里指定控件的发送文本,不论窗体或控件这时的状态是否激活。但ControlSend不能输出中文 ControlSend("安装 - 极点中文输入平台","选择目标文件夹","TEdit1"," D]修改默认组件 极点在安装时提供了多种组件组合,如何修改呢? 其实很简单,我们模拟一下使用键盘如何解决就行了。使用键盘TAB将焦点切换到要修改的控件,再用键盘方法选择,这个方法只用到Send命令就可以完成。推荐使用 6、 用其它方式按键(ControlClick和MouseClick) 上面脚本里遇到按键的地方我们都是用快捷键来完成的,如果没有快捷键应该怎么办呢? (1) 从模拟按键的角度思考,如果焦点可以切换到,我们就可以用Tab键切换,用Enter键确认 (2) 使用 ControlClick(" 窗体标题", "窗体文本","要点击的控件类名或控件精确标题") ControlClick功能是点击指定窗体里的指定控件,不论窗体或控件这时的状态是否激活。 (3) 使用模拟鼠标点击 这个方法是尽量不要使用的,但有的窗体没有快捷键,不能切换焦点,又找不到控件信息,这时只能用模拟鼠标点击的方法。 MouseClick(“ 鼠标左右键”, 在屏幕的X位置,在屏幕的Y位置,点击次数 ) 使用这一方法必须取得准确的鼠标坐标,而且坐标要适应不同情况,最好用变量取得,具体方法以后再介绍。 总结 在这篇文章里我不想过多的介绍每一个命令的详细用法,其实一般的安装程序用上面的命令大概就能解决了。主要还是想介绍思路:先考虑使用一般命令和模拟键盘动作,再考虑复杂命令,最后用相对不精确的模拟鼠标。 学习AutoIT和其它学习一样,多思考,多练习,你一定会学的很好。 x0 |