批处理转换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 沙发,处女沙发。内牛满面。。。。。。
顶你 {:face (394):}标题党。。 我还以为怎么转化的。 回复 3# lanfengc
呵呵,我只能这么做了,代码也是简单的.
前辈是想怎么转化那?给我个建议{:face (88):} 这也行,还不如用GUI实现批处理器想达到的效果 正愁AU3加入批处理呢。太好了,如果能告诉我们直接加入的方法就更好了 顶你顶你顶你 一半直接写好批处理,再加入au3写的程序中,需要的话就释放。。。 批处理命令有它的好处, 楼上说的不错,一般都是释放出来执行的。 比如FOR命令,用批处理就很简单,而如果想转化成au3脚本的话就需要遍历目录,分析文件名 等等。比较麻烦。我以为你解决了这样的问题呢。 看似简单的东西,相信里边还是会有很多要注意的东西的,支持一个 我晕,这样叫转换为AU3啊?只不过是用AU3写成批处理文件.再运行这个批处理文件.
应该叫au3运行批处理.
何必这样麻烦呢,直接用AU3打包这个批处理文件再运行它不就行了? 同意楼上的!!!!!!!!!!!!!!!! 正好可以试一下我这的批处理 很不错支持浪漫 感谢楼主分享,正好可以学习一下。