lixiaolong 发表于 2011-1-8 23:37:55

批处理转换AU3工具 _BatToAU3

本帖最后由 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 键进行注册表限制
echo          按 U 键解除注册表限制
echo          按其他任意键退出
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 键进行注册表限制')
FileWriteLine($F, 'echo          按 U 键解除注册表限制')
FileWriteLine($F, 'echo          按其他任意键退出')
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

ghl781258 发表于 2011-1-9 09:18:46

沙发,处女沙发。内牛满面。。。。。。
顶你

lanfengc 发表于 2011-1-9 17:37:17

{:face (394):}标题党。。 我还以为怎么转化的。

lixiaolong 发表于 2011-1-9 18:34:43

回复 3# lanfengc

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

前辈是想怎么转化那?给我个建议{:face (88):}

lqs_lfzz 发表于 2011-1-9 20:25:05

这也行,还不如用GUI实现批处理器想达到的效果

yinbinly 发表于 2011-1-9 21:13:47

正愁AU3加入批处理呢。太好了,如果能告诉我们直接加入的方法就更好了

weeks5 发表于 2011-1-9 21:43:29

顶你顶你顶你

llwslc 发表于 2011-1-9 22:07:57

一半直接写好批处理,再加入au3写的程序中,需要的话就释放。。。

lanfengc 发表于 2011-1-10 09:28:48

批处理命令有它的好处, 楼上说的不错,一般都是释放出来执行的。 比如FOR命令,用批处理就很简单,而如果想转化成au3脚本的话就需要遍历目录,分析文件名 等等。比较麻烦。我以为你解决了这样的问题呢。

komaau3 发表于 2011-1-10 14:02:13

看似简单的东西,相信里边还是会有很多要注意的东西的,支持一个

mo_shaojie 发表于 2011-1-10 17:09:04

我晕,这样叫转换为AU3啊?只不过是用AU3写成批处理文件.再运行这个批处理文件.
应该叫au3运行批处理.
何必这样麻烦呢,直接用AU3打包这个批处理文件再运行它不就行了?

zjw767676 发表于 2011-1-10 17:38:14

同意楼上的!!!!!!!!!!!!!!!!

xz00311 发表于 2011-1-11 13:30:55

正好可以试一下我这的批处理

dabaiyun 发表于 2011-1-11 18:07:50

很不错支持浪漫

sybzpq 发表于 2011-1-11 19:56:12

感谢楼主分享,正好可以学习一下。
页: [1] 2 3 4 5
查看完整版本: 批处理转换AU3工具 _BatToAU3