找回密码
 加入
搜索
查看: 38900|回复: 62

[原创] 批处理转换AU3工具 _BatToAU3

 火... [复制链接]
发表于 2011-1-8 23:37:55 | 显示全部楼层 |阅读模式
本帖最后由 lixiaolong 于 2011-1-10 22:27 编辑

大家好,

本人喜欢批处理,所以经常在au3代码里放批处理代码.
但是把批处理转au3是很麻烦的,所以写了这个工具.


支持拖放文件,只支持bat文件.
可以指定转换后的au3代码隐藏窗口实行,最大化窗口实行.
(@SW_HIDE,@SW_MAXIMIZE)

自动建立和原文件同名的au3文件,不删除原文件.

转换例子:

批处理文件
@echo off
:: 出处:http://bbs.wuyou.com/forum.php?mod=viewthread&tid=94384
mode con cols=84 lines=21
title 注册表限制威金、熊猫、金猪病毒运行
color 4f
cls
echo.
echo.
echo                     注册表限制威金、熊猫、金猪病毒的运行 for /XP
echo          -----------------------------------------------------------------
echo.
echo              此批处理可以限制2007年2月9日前的威金、熊猫、金猪病毒的运行。
echo          比如运行一个SETUP.EXE的熊猫病毒,该病毒会生成c:\WINDOWS\SYTEM32\
echo          FuckJacks.exe,由于我限制了FuckJacks.exe的运行,所以不管怎么双击
echo          运行SETUP.EXE,都不能成功运行病毒c:\WINDOWS\SYTEM32\FuckJacks.exe 
echo          因而病毒也就起不了作用,等于废了。
echo.                               
echo                                                     6618   2007年2月10日
echo                                               Modified by JM 07年2月11日
echo.
echo          [F] 按 F 键进行注册表限制
echo          [U] 按 U 键解除注册表限制
echo          [Q] 按其他任意键退出
echo          -----------------------------------------------------------------
echo.

set route=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
SET Choice=
SET /P Choice=         请选择要进行的操作:  
IF /I '%Choice:~0,1%'=='f' GOTO fix
IF /I '%Choice:~0,1%'=='u' GOTO unfix
exit

:fix
echo.
echo                           正在进行免疫操作,请稍侯...  
:: 下一句中的 "全盘禁止运行%%i" 可以替换成任意的字符,都能起到全盘禁止运行指定exe的效果
for /f %%i in (list.ini) do (
    reg add "%route%\%%i" /v Debugger /t REG_SZ /d 全盘禁止运行%%i /f >nul 2>nul
)
cls
echo.&echo.&echo.&echo.&echo.
echo                 已在注册表中限制威金、熊猫、金猪病毒的运行。 
echo.   
echo                 如果已中了此类病毒,运行这个批处理后,请
echo.
echo                 重启电脑进行杀毒。
echo.                
echo                        感谢使用,按任意键退出...
pause>nul
exit

:unfix
echo.
echo                           正在解除限制,请稍侯...  
for /f %%i in (list.ini) do reg delete "%route%\%%i" /f >nul 2>nul
cls
echo.&echo.&echo.&echo.&echo.&echo.&echo.
echo                 已解除注册表中对熊猫、威金、金猪病毒的制限。 
echo.   
echo                  感谢使用,按任意键退出...
pause>nul


转换后(隐藏窗口)
Dim $F = FileOpen(@TempDir & "\新建文本文档.bat", 2)
FileWriteLine($F, '@echo off')
FileWriteLine($F, ':: 出处:http://bbs.wuyou.com/forum.php?mod=viewthread&tid=94384')
FileWriteLine($F, 'mode con cols=84 lines=21')
FileWriteLine($F, 'title 注册表限制威金、熊猫、金猪病毒运行')
FileWriteLine($F, 'color 4f')
FileWriteLine($F, 'cls')
FileWriteLine($F, 'echo.')
FileWriteLine($F, 'echo.')
FileWriteLine($F, 'echo                     注册表限制威金、熊猫、金猪病毒的运行 for /XP')
FileWriteLine($F, 'echo          -----------------------------------------------------------------')
FileWriteLine($F, 'echo.')
FileWriteLine($F, 'echo              此批处理可以限制2007年2月9日前的威金、熊猫、金猪病毒的运行。')
FileWriteLine($F, 'echo          比如运行一个SETUP.EXE的熊猫病毒,该病毒会生成c:\WINDOWS\SYTEM32\')
FileWriteLine($F, 'echo          FuckJacks.exe,由于我限制了FuckJacks.exe的运行,所以不管怎么双击')
FileWriteLine($F, 'echo          运行SETUP.EXE,都不能成功运行病毒c:\WINDOWS\SYTEM32\FuckJacks.exe ')
FileWriteLine($F, 'echo          因而病毒也就起不了作用,等于废了。')
FileWriteLine($F, 'echo.                               ')
FileWriteLine($F, 'echo                                                     6618   2007年2月10日')
FileWriteLine($F, 'echo                                               Modified by JM 07年2月11日')
FileWriteLine($F, 'echo.')
FileWriteLine($F, 'echo          [F] 按 F 键进行注册表限制')
FileWriteLine($F, 'echo          [U] 按 U 键解除注册表限制')
FileWriteLine($F, 'echo          [Q] 按其他任意键退出')
FileWriteLine($F, 'echo          -----------------------------------------------------------------')
FileWriteLine($F, 'echo.')
FileWriteLine($F, '')
FileWriteLine($F, 'set route=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options')
FileWriteLine($F, 'SET Choice=')
FileWriteLine($F, 'SET /P Choice=         请选择要进行的操作:  ')
FileWriteLine($F, 'IF /I ' & "'" & '%Choice:~0,1%' & "'" & '==' & "'" & 'f' & "'" & ' GOTO fix')
FileWriteLine($F, 'IF /I ' & "'" & '%Choice:~0,1%' & "'" & '==' & "'" & 'u' & "'" & ' GOTO unfix')
FileWriteLine($F, 'exit')
FileWriteLine($F, '')
FileWriteLine($F, ':fix')
FileWriteLine($F, 'echo.')
FileWriteLine($F, 'echo                           正在进行免疫操作,请稍侯...  ')
FileWriteLine($F, ':: 下一句中的 "全盘禁止运行%%i" 可以替换成任意的字符,都能起到全盘禁止运行指定exe的效果')
FileWriteLine($F, 'for /f %%i in (list.ini) do (')
FileWriteLine($F, '    reg add "%route%\%%i" /v Debugger /t REG_SZ /d 全盘禁止运行%%i /f >nul 2>nul')
FileWriteLine($F, ')')
FileWriteLine($F, 'cls')
FileWriteLine($F, 'echo.&echo.&echo.&echo.&echo.')
FileWriteLine($F, 'echo                 已在注册表中限制威金、熊猫、金猪病毒的运行。 ')
FileWriteLine($F, 'echo.   ')
FileWriteLine($F, 'echo                 如果已中了此类病毒,运行这个批处理后,请')
FileWriteLine($F, 'echo.')
FileWriteLine($F, 'echo                 重启电脑进行杀毒。')
FileWriteLine($F, 'echo.                ')
FileWriteLine($F, 'echo                        感谢使用,按任意键退出...')
FileWriteLine($F, 'pause>nul')
FileWriteLine($F, 'exit')
FileWriteLine($F, '')
FileWriteLine($F, ':unfix')
FileWriteLine($F, 'echo.')
FileWriteLine($F, 'echo                           正在解除限制,请稍侯...  ')
FileWriteLine($F, 'for /f %%i in (list.ini) do reg delete "%route%\%%i" /f >nul 2>nul')
FileWriteLine($F, 'cls')
FileWriteLine($F, 'echo.&echo.&echo.&echo.&echo.&echo.&echo.')
FileWriteLine($F, 'echo                 已解除注册表中对熊猫、威金、金猪病毒的制限。 ')
FileWriteLine($F, 'echo.   ')
FileWriteLine($F, 'echo                  感谢使用,按任意键退出...')
FileWriteLine($F, 'pause>nul')
FileWriteLine($F, '')
FileClose($F)
RunWait(@ComSpec & " /c call " & '"' & @TempDir & "\新建文本文档.bat" & '"' ,"", 0)
FileDelete(@TempDir & "\新建文本文档.bat")




2010/01/09

更新内容:
去掉了无用的空行FileWriteLine($F, '') .
修复了一些问题.



2010/01/10
今天又写了一个批处理转换AU3的工具(测试版).

批处理转换AU3第二版 _BatToAU3ToRun

http://www.autoitx.com/forum.php?mod=viewthread&tid=21101&page=1&extra=#pid254059

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-1-9 09:18:46 | 显示全部楼层
沙发,处女沙发。内牛满面。。。。。。
顶你
发表于 2011-1-9 17:37:17 | 显示全部楼层
  标题党。。 我还以为怎么转化的。
 楼主| 发表于 2011-1-9 18:34:43 | 显示全部楼层
回复 3# lanfengc

呵呵,我只能这么做了,代码也是简单的.

前辈是想怎么转化那?给我个建议
发表于 2011-1-9 20:25:05 | 显示全部楼层
这也行,还不如用GUI实现批处理器想达到的效果
发表于 2011-1-9 21:13:47 | 显示全部楼层
正愁AU3加入批处理呢。太好了,如果能告诉我们直接加入的方法就更好了
发表于 2011-1-9 21:43:29 | 显示全部楼层
顶你顶你顶你
发表于 2011-1-9 22:07:57 | 显示全部楼层
一半直接写好批处理,再加入au3写的程序中,需要的话就释放。。。
发表于 2011-1-10 09:28:48 | 显示全部楼层
批处理命令有它的好处, 楼上说的不错,一般都是释放出来执行的。 比如FOR命令,用批处理就很简单,而如果想转化成au3脚本的话就需要遍历目录,分析文件名 等等。比较麻烦。  我以为你解决了这样的问题呢。
发表于 2011-1-10 14:02:13 | 显示全部楼层
看似简单的东西,相信里边还是会有很多要注意的东西的,支持一个
发表于 2011-1-10 17:09:04 | 显示全部楼层
我晕,这样叫转换为AU3啊?只不过是用AU3写成批处理文件.再运行这个批处理文件.
应该叫au3运行批处理.
何必这样麻烦呢,直接用AU3打包这个批处理文件再运行它不就行了?
发表于 2011-1-10 17:38:14 | 显示全部楼层
同意楼上的!!!!!!!!!!!!!!!!
发表于 2011-1-11 13:30:55 | 显示全部楼层
正好可以试一下我这的批处理
发表于 2011-1-11 18:07:50 | 显示全部楼层
很不错支持浪漫
发表于 2011-1-11 19:56:12 | 显示全部楼层
感谢楼主分享,正好可以学习一下。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 07:10 , Processed in 0.078906 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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