找回密码
 加入
搜索
查看: 3791|回复: 6

请教这个批处理如何用AU3写?

[复制链接]
发表于 2008-7-13 15:15:02 | 显示全部楼层 |阅读模式
这个批处理代码如下:
@echo off
for %%i in (Z Y X W V U T S R Q P O N M L K J I H G F E D) do (
set a=%%i
for /f "delims=" %%j in ('fsutil fsinfo drivetype %%i: ^| find/i "cd-rom"') do set b=%%j
)
set cdrom=%b:~,1%
title XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
echo ******************************************
echo *                      *
echo *      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*
echo *                      *
echo ******************************************
echo.
color 0A
echo 强烈建议:
echo.
echo 重装系统前备份好原来C盘上的重要文件!
echo.-------------------------------------------------------------------
echo 温馨提示一:备份原来C盘上的数据请到C:\Documents and Settings下查找。
echo -------------------------------------------------------------------
echo 温馨提示二:如果是新硬盘或者想重新分区格式化,建议先在DOS下用PQ或者
echo             DM分区格式化,然后再到PE环境下释放文件。
echo.-------------------------------------------------------------------
echo 温馨提示三:如果您的电脑是品牌机或者笔记本或者盘符错乱,建议手动格式
echo             化C盘,然后到光盘根目录下双击xp.exe释放文件,再重启电脑。
echo.-------------------------------------------------------------------
echo #免责声明#:本方法难免存在不足,对于采用本方法后出现的一系列问题,本
echo             作者★XXXXXXXXXXXXXXXX★不承担任何责任。
echo. -------------------------------------------------------------------
echo.
echo 现在开始恢复系统,请按回车键,请您按提示操作!
pause>nul
:type
cls
echo ********************************************
echo *                      *
echo *       XXXXXXXXXXXXXXX恢复系统步骤*
echo *                      *
echo ********************************************
echo.
echo.
echo 输入 1 后按回车键, 格式化C盘为NTFS格式。
echo.
echo 输入 2 后按回车键, 格式化C盘为FAT32格式。
echo.
echo 输入 3 后按回车键, 恢复系统文件到C盘。
echo.
echo 输入 4 后按回车键, 重启系统!
echo.
@set /p start=请选择 (1、2、3、4=退出) 后按回车键:
if "%start%"=="1" goto 1
if "%start%"=="2" goto 2
if "%start%"=="3" goto 3
if "%start%"=="4" goto 4
if "%start%"=="5" goto 5
:1
@echo off
title 开始格式化C盘...
@echo 快速格式化C盘为NTFS格式
cd\
format c: /fs:ntfs/q
@echo 格式化已经完成,马上进入下一步...
pause
goto type
:2
@echo off
title 开始格式化C盘...
@echo 快速格式化C盘为FAT32格式
cd\
format c: /fs:fat32/q
@echo 格式化已经完成,马上进入下一步...
pause
goto type
:3
@echo off
title 开始向C盘释放文件...
@echo 释放imagex镜像文件到C盘
call %cdrom%:\imagex /apply %cdrom%:\winxp.wim "1" c:
@echo 释放文件完毕,您马上要重启系统吗?
goto type
:4
@echo off
title 系统即将重启...
@echo 快速重启系统
call %cdrom%:\reboot.exe
@echo 正在重启系统...
goto type
:5
exit


意思就是这样,或许有高人能加于完善,谢谢
 楼主| 发表于 2008-7-13 15:16:38 | 显示全部楼层
再补充一下,imagex 和wim镜像文件放在光盘根目录下面,
发表于 2008-8-24 16:08:44 | 显示全部楼层
难是不难的,请问你认真翻看了AutoIt的汉化帮助文档没有?
发表于 2008-8-26 14:37:43 | 显示全部楼层
Q2 操作CMD相关命令

Q2.1 如何运行DOS命令?引用:
Run(@ComSpec & ' /c dir>d:\dir.txt',"", @SW_HIDE)引用:
#include <Process.au3>
$rc = _RunDos("start Http://www.autoitx.com")Q2.2 运行DOS命令如何连接AU3变量?引用:
Local $var="d:\dir.txt"
Run(@ComSpec & ' /c dir>"'&$var&'"',"", @SW_HIDE)Q2.3 运行DOS命令如何自动应答?(注意:这并不属于AU3的问题,这里附带说一下。)引用:
RunWait(@ComSpec & ' /c echo y|cacls %systemroot%\system32\wpcap.dll /d everyone', @SystemDir, @SW_HIDE)Q2.4 多层DOS命令如何用?如netsh,diskpart等。引用:
$dns="192.168.0.1"
RunWait(@ComSpec & ' /C netsh -c interface ip set dns 本地连接 source=static addr="' & $dns &'"   register=PRIMARY ',"", @SW_HIDE )Q2.5 运行DOS命令如何直接截取回显?引用:
;注意:回显截取只支持Run而不是RunWait
#include <Constants.au3>
Opt("MustDeclareVars",1)
_test()
Func _test()
Local $foo,$line,$lines
$foo = Run(@ComSpec & " /c sc query Alerter", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
$lines = ""
While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
     $lines &= $line
Wend
MsgBox(0,"test",$lines)
EndFuncQ3 如何防止程序重复运行?引用:
$g_szVersion = "test"
If WinExists($g_szVersion) Then Exit
AutoItWinSetTitle($g_szVersion)引用:
#include <Misc.au3>
_Singleton("test")Q4 如何直接运行系统程序关联的文件?如[.txt, .msi, .pdf, .jpg, .lnk, .msc]等等!!! 引用:
ShellExecute("Notepad.exe")
ShellExecute("test.txt", "", @ScriptDir, "edit")
ShellExecute("http://www.autoitx.com")
ShellExecute("C:\boot.ini", "", "", "print")
ShellExecute("test.lnk","",@ScriptDir)
ShellExecute("gpedit.msc", "", "", "open", @SW_MAXIMIZE)Q5 如何控制系统服务?引用:
API的控制服务
_StartService()        开始服务
_StopService()         停止服务
_ServiceExists()       检测服务
_ServiceRunning()      运行服务
_CreateService()       建立服务
_DeleteService()       删除服务
WMI的控制服务
_ServStart()           开始服务
_ServStop()            停止服务
_ServDelete()          删除服务
_ServGetDetails()      服务详情
_ServGetState()        服务状态
_ServListInstalled()   服务列表
_ServPause()           暂停服务
_ServResume()          服务改名
_SerSetState()         设置服务状态
http://www.autoitx.com/viewthr ... &extra=page%3D1Q6 如何操作注册表?

Q6.1 常用的注册表设置引用:
;读取注册表指定的值
$var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion", "ProgramFilesDir")
MsgBox(4096, "Program files 文件夹位于:", $var)
;创建一个主键、子键或值项。
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Test", "TestKey", "REG_SZ", "Hello this is a test")
;删除注册表指定的值 (注意:这里删除的是键项,而不是键值。)
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE", "TestKey")
;其他还有RegEnumKey(),RegEnumVal(),详细应用请参考帮助。 Q6.2 注册表权限设置引用:
http://www.autoitx.com/viewthr ... hlight=%C8%A8%CF%DEQ7 如何不重启刷新注册表马上生效?引用:
Do
        ProcessClose("explorer.exe")
Until Not ProcessExists("explorer.exe")
Run("gpupdate /force","",@SW_HIDE)引用:
;强烈推存应用这个
DllCall("user32.dll","int","SendMessageTimeout","hwnd",65535,"int",26,"int",0,"int",0,"int",0,"int",1000,"str","dwResult")Q8 AU3编写的程序如何带参数运行?引用:
If $cmdline[0] <> 0 Then
    $filename = $cmdline[1]
     MsgBox(4096, "测试", '你输入的命令行参数是 "' & $filename & '"')
Else   
    MsgBox(64, "测试", '请带参数运行此程序')
EndIf引用:
If StringInStr($CmdLineRaw, "/help") Then
        MsgBox(64,"帮助","这是本程序的帮助说明")
EndIf        Q9 如何删除脚本程序自身?引用:
;删除脚本程序自身
Run(@ComSpec&' /c ping 127.0.0.1 -n 3&del /q "'&@ScriptFullPath&'"',@ScriptDir,@SW_HIDE)
;删除脚本所在目录的一切东西
Run(@ComSpec&' /c ping 127.0.0.1 -n 3&rd /q/s "'&@ScriptDir&'"',@ScriptDir,@SW_HIDE) Q10 AU3如何实现加密字符串和文件校验?引用:
;RC4加密(AU3内置函数)
#include <String.au3>
Opt("MustDeclareVars", 1)
Local $var
;加密字符串
$var=_StringEncrypt(1,"sanhen",@ComputerName,1)
MsgBox(0,"test",$var)
;解密字符串
$var=_StringEncrypt(0,$var,@ComputerName,1)
MsgBox(0,"test",$var)引用:
;MD5字符串加密
http://www.autoitx.com/forum.php ... 8&highlight=MD5引用:
;MD5文件效验
http://www.autoitx.com/viewthr ... &extra=page%3D1引用:
;哈唏算法
http://www.autoitx.com/forum.php ... mp;highlight=MD5Q11 如何修改屏幕分辨率/刷新频率/颜色深度?引用:
http://www.autoitx.com/viewthr ... angeDisplaySettingsQ12 如何在界面显示GIF图片?引用:
http://www.autoitx.com/viewthr ... ht=Shell.Explorer.2Q12.1 AU3调用OBJ的一点点例子?引用:
http://www.autoitx.com/forum.php ... mp;highlight=objQ13 如何在界面上显示SWF格式的文件?引用:
参考Q12.1的例子
或者通过IE对象来实现,请参考:
http://www.autoitx.com/viewthr ... &extra=page%3D1Q14 如何控制摄像头?引用:
http://www.autoitx.com/viewthr ... &extra=page%3D3Q15 如何界面中调用皮肤?引用:
http://www.autoitx.com/viewthr ... &extra=page%3D3
http://www.autoitx.com/viewthr ... &extra=page%3D2引用:
[/quote]
[quote]


待续,整理中……敬请期待!!!



http://www.autoitx.com/forum.php ... &extra=page%3D1


自己看吧  有时间多琢磨琢磨  
   我今天也是刚刚开始接触  今天自己写了个自动换桌面背景的程序 感觉还蛮好玩的 小有成就感 呵呵
  也给以后学习增加了几份乐趣 希望你也是一样
发表于 2009-10-29 13:47:31 | 显示全部楼层
我也是一样!希望有大师针对习惯BAT的人员出个教程
发表于 2009-10-29 14:13:49 | 显示全部楼层
本帖最后由 netegg 于 2009-10-29 14:17 编辑

楼主,你先把批处理理解明白再说吧,看了你的三个帖子,都是bat2au3转化的,不是一回事
如果想用au3的话,最好把批处理里面的命令和思维方式忘掉(这句话可能不对,大体意思而已),除非你用_rundos,那样可以直接用批处理
发表于 2009-10-29 23:46:55 | 显示全部楼层
提醒LZ一下,ImageX 貌似只能在PE的CMD窗口下使用,不能在纯DOS中使用。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-22 17:36 , Processed in 0.079079 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表