|
evilangell
初级用户
积分 32
发帖 32
注册 2008-4-18
状态 离线
|
『楼 主』:
[已结]将文件拖动到BAT或VBS图标上以后自动修改脚本内容
这个bat或者vbs该怎么写????
现有一个文本文件:bak.txt
内容如下:
>>"%Temp%.\Tmp.reg" ECHO "1"="aaa.exe"
>>"%Temp%.\Tmp.reg" ECHO "2"="bbb.exe"
>>"%Temp%.\Tmp.reg" ECHO "3"="ccc.exe"
>>"%Temp%.\Tmp.reg" ECHO "4"="ddd.exe"
>>"%Temp%.\Tmp.reg" ECHO "5"="eee.exe"
START /wait regedit /s "%Temp%.\Tmp.reg" 现在我想写这样一个bak.bat或者bak.vbs
现有一个fff.exe程序,
我直接把fff.exe拖动到bak.bat或者bak.vbs图标上,然后bak.txt变成如下:
>>"%Temp%.\Tmp.reg" ECHO "1"="aaa.exe"
>>"%Temp%.\Tmp.reg" ECHO "2"="bbb.exe"
>>"%Temp%.\Tmp.reg" ECHO "3"="ccc.exe"
>>"%Temp%.\Tmp.reg" ECHO "4"="ddd.exe"
>>"%Temp%.\Tmp.reg" ECHO "5"="eee.exe"
>>"%Temp%.\Tmp.reg" ECHO "6"="fff.exe"
START /wait regedit /s "%Temp%.\Tmp.reg" 可以继续拖动其它程序到bak.bat或者bak.vbs图标上,继续有序的添加
───────────────── 版务记录 ─────────────────
执行:HAT
操作:[2008-11-23]在帖子标题中增加搜索关键字;代码加code标签
说明:原标题"这个bat或者vbs该怎么写????"不利于论坛搜索
处罚:扣除2点积分
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{32667}[愤怒]那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────
[ Last edited by HAT on 2008-11-24 at 02:03 ]
此帖被 -2 点积分 点击查看详情 评分人:【 HAT 】 | 分数: -2 | 时间:2008-11-23 10:47 |
|
|
|
2008-11-23 10:34 |
|
|
evilangell
初级用户
积分 32
发帖 32
注册 2008-4-18
状态 离线
|
|
2008-11-23 12:18 |
|
|
tireless
银牌会员
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
3 楼』:
建议换一下方法。
拖入任意个数的文件到以下批处理上,每次拖入文件后,会修改 bak_行数.txt 的文件名中的行数数字,“行数”与 bak_行数.txt 文本中最后一行的行数对应,这样下次拖入文件时方便读取行数:
@echo off
if "%~1" equ "" echo 请拖入任意个数文件到此批处理上。按任意键退出...&pause>nul&exit /b
cd /d "%~dp0"
if not exist bak_*.txt type nul>bak_0.txt
for /f "delims=_. tokens=2" %%a in ('dir /a:-d /b bak_*.txt') do (
set n=%%a
set file=bak_%%a.txt
)
for %%a in (%*) do (
set /a n+=1
>>%file% call echo "%%n%%"="%%~a"
)
ren %file% bak_%n%.txt 如要把 bak_行数.txt 中的内容添加到 Tmp.reg 中,执行这条命令:
copy "%Temp%.\Tmp.reg"+bak_行数.txt START /wait regedit /s "%Temp%.\Tmp.reg" 这一句另外来执行,加到文本中太费事了。
|
|
2008-11-23 16:00 |
|
|
evilangell
初级用户
积分 32
发帖 32
注册 2008-4-18
状态 离线
|
『第
4 楼』:
谢谢LS的朋友
其实最初的问题是这样的:
原先的那个bak.txt本来就是个BAT文件,是我提问时故意改的
源文件如下(名称为: Restrict受限.bat ):
@cls&@echo.&@color f3&@cd..\&@cls
> "%Temp%.\Tmp.reg" ECHO Windows Registry Editor Version 5.00
>>"%Temp%.\Tmp.reg" ECHO.
>>"%Temp%.\Tmp.reg" ECHO [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun]
>>"%Temp%.\Tmp.reg" ECHO.
>>"%Temp%.\Tmp.reg" ECHO [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun]
>>"%Temp%.\Tmp.reg" ECHO "1"="regedit.exe"
>>"%Temp%.\Tmp.reg" ECHO "2"="regedt32.exe"
>>"%Temp%.\Tmp.reg" ECHO "3"="cmd.exe"
>>"%Temp%.\Tmp.reg" ECHO "4"="rundll32.exe"
>>"%Temp%.\Tmp.reg" ECHO "5"="smagent.exe"
>>"%Temp%.\Tmp.reg" ECHO "6"="shell32.dll"
>>"%Temp%.\Tmp.reg" ECHO "7"="msconfig.exe"
>>"%Temp%.\Tmp.reg" ECHO "8"="mspaint.exe"
>>"%Temp%.\Tmp.reg" ECHO "9"="shutdown.exe"
>>"%Temp%.\Tmp.reg" ECHO "10"="hh.exe"
>>"%Temp%.\Tmp.reg" ECHO "11"="IEXPLORE.EXE"
>>"%Temp%.\Tmp.reg" ECHO.
>>"%Temp%.\Tmp.reg" ECHO [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
>>"%Temp%.\Tmp.reg" ECHO "RestrictRun"=dword:00000001
@START /wait regedit /s "%Temp%.\Tmp.reg"
@ping -n 2 127.0.0.1 > nul
@gpupdate.EXE /force > nul
@ping -n 2 127.0.0.1 > nul
@DEL "%Temp%.\Tmp.reg"
如果有个程序比如是OK.EXE拖进来到这个 Restrict受限.bat 里,或者tireless建的BAT文件中,则 Restrict受限.bat 内容变成如下:
@cls&@echo.&@color f3&@cd..\&@cls
> "%Temp%.\Tmp.reg" ECHO Windows Registry Editor Version 5.00
>>"%Temp%.\Tmp.reg" ECHO.
>>"%Temp%.\Tmp.reg" ECHO [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun]
>>"%Temp%.\Tmp.reg" ECHO.
>>"%Temp%.\Tmp.reg" ECHO [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun]
>>"%Temp%.\Tmp.reg" ECHO "1"="regedit.exe"
>>"%Temp%.\Tmp.reg" ECHO "2"="regedt32.exe"
>>"%Temp%.\Tmp.reg" ECHO "3"="cmd.exe"
>>"%Temp%.\Tmp.reg" ECHO "4"="rundll32.exe"
>>"%Temp%.\Tmp.reg" ECHO "5"="smagent.exe"
>>"%Temp%.\Tmp.reg" ECHO "6"="shell32.dll"
>>"%Temp%.\Tmp.reg" ECHO "7"="msconfig.exe"
>>"%Temp%.\Tmp.reg" ECHO "8"="mspaint.exe"
>>"%Temp%.\Tmp.reg" ECHO "9"="shutdown.exe"
>>"%Temp%.\Tmp.reg" ECHO "10"="hh.exe"
>>"%Temp%.\Tmp.reg" ECHO "11"="IEXPLORE.EXE"
>>"%Temp%.\Tmp.reg" ECHO "12"="OK.EXE"
>>"%Temp%.\Tmp.reg" ECHO.
>>"%Temp%.\Tmp.reg" ECHO [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
>>"%Temp%.\Tmp.reg" ECHO "RestrictRun"=dword:00000001
@START /wait regedit /s "%Temp%.\Tmp.reg"
@ping -n 2 127.0.0.1 > nul
@gpupdate.EXE /force > nul
@ping -n 2 127.0.0.1 > nul
@DEL "%Temp%.\Tmp.reg"
因为每次手工添加太麻烦,所以才萌生拖进来自动添加的念头
|
|
2008-11-23 22:51 |
|
|
evilangell
初级用户
积分 32
发帖 32
注册 2008-4-18
状态 离线
|
『第
5 楼』:
因为小弟对BAT高级应用不是很懂,所以再请tireless兄,出手帮忙
|
|
2008-11-23 22:57 |
|
|
evilangell
初级用户
积分 32
发帖 32
注册 2008-4-18
状态 离线
|
|
2008-11-23 23:58 |
|
|
tireless
银牌会员
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
7 楼』:
@echo off
if "%~1" neq "" goto add
more +23 %0>"%Temp%.\Tmp.reg"
START /wait regedit /s "%Temp%.\Tmp.reg"
ping -n 2 127.0.0.1 > nul
gpupdate.EXE /force > nul
ping -n 2 127.0.0.1 > nul
DEL "%Temp%.\Tmp.reg"
exit /b
:add
cd /d "%~dp0"
for /f "delims==" %%a in ('findstr ^^\"[0-9].*\" %0^|sort /r') do (
set "n=%%~a" & goto next
)
:next
for %%a in (%*) do (
set /a n+=1
>>%0 call echo "%%n%%"="%%~a"
)
exit /b
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun] 注:
① 最后一行要为空行。
② 如果要在 Windows Registry Editor Version 5.00 前面增加或删除代码行,则要修改此句的红色数字:
more +23 %0>"%Temp%.\Tmp.reg"
这个数字就是 Windows Registry Editor Version 5.00 前面的行数。
|
|
2008-11-24 00:05 |
|
|
tireless
银牌会员
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
8 楼』:
Quote: | Originally posted by evilangell at 2008-11-23 11:58 PM:
恩,非常感谢,最好能去掉路径 |
|
哪个路径?
|
|
2008-11-24 00:07 |
|
|
evilangell
初级用户
积分 32
发帖 32
注册 2008-4-18
状态 离线
|
『第
9 楼』:
谢谢朋友
经测试,发现如下问题:
1.我想去掉路径
2.只能添加到19个,再继续添加时,又变成了从第10个开始了
|
|
2008-11-24 00:12 |
|
|
evilangell
初级用户
积分 32
发帖 32
注册 2008-4-18
状态 离线
|
『第
10 楼』:
@echo off
if "%~1" neq "" goto add
more +23 %0>"%Temp%.\Tmp.reg"
START /wait regedit /s "%Temp%.\Tmp.reg"
ping -n 2 127.0.0.1 > nul
gpupdate.EXE /force > nul
ping -n 2 127.0.0.1 > nul
DEL "%Temp%.\Tmp.reg"
exit /b
:add
cd /d "%~dp0"
for /f "delims==" %%a in ('findstr ^^\"[0-9].*\" %0^|sort /r') do (
set "n=%%~a" & goto next
)
:next
for %%a in (%*) do (
set /a n+=1
>>%0 call echo "%%n%%"="%%~a"
)
exit /b
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun]
"1"="regedit.exe"
"2"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\AnyDel.bat"
"3"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\IP自动设置.lnk"
"4"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\NTFS文件锁定程序.bat"
|
|
2008-11-24 00:14 |
|
|
evilangell
初级用户
积分 32
发帖 32
注册 2008-4-18
状态 离线
|
|
2008-11-24 00:29 |
|
|
evilangell
初级用户
积分 32
发帖 32
注册 2008-4-18
状态 离线
|
『第
12 楼』:
经多次测试,也不一定是19个,有时会出现两个一模一样的
如下:
"8"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\防盗版黑屏.bat"
"9"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\手工迁移个人资料.bat"
"10"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\文件(S).bat"
"11"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\regedit.exe"
"12"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\Restrict受限.jpg"
"10"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\AnyDel.bat"
"11"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\IP自动设置.lnk"
"12"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\NTFS文件锁定程序.bat"
"13"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\Restrict生效.bat"
"14"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\Restrict生效.exe"
"15"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\Restrict受限(安全版).bat"
"16"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\UnRestrict.bat"
"17"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\防盗版黑屏.bat"
"18"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\手工迁移个人资料.bat"
"19"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\文件(S).bat"
"20"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\regedit.exe"
"21"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\Restrict受限.jpg"
"10"="C:\Documents and Settings\Administrator\桌面\Restrict+BAT\AnyDel.bat"
|
|
2008-11-24 00:37 |
|
|
tireless
银牌会员
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
13 楼』:
改了一下,再试试:
@echo off
if "%~1" neq "" goto add
more +20 %0>"%Temp%.\Tmp.reg"
START /wait regedit /s "%Temp%.\Tmp.reg"
ping -n 2 127.0.0.1 > nul
gpupdate.EXE /force > nul
ping -n 2 127.0.0.1 > nul
DEL "%Temp%.\Tmp.reg"
exit /b
:add
cd /d "%~dp0"
for /f %%a in ('find /v /c "" %0') do set "n=%%~a-2"
for /f "delims==" %%a in ('more +%n% %0') do set n=%%~a
for %%a in (%*) do (
set /a n+=1
>>%0 call echo."%%n%%"="%%~nxa"
)
exit /b
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun] [ Last edited by tireless on 2008-11-24 at 00:44 ]
此帖被 +2 点积分 点击查看详情 评分人:【 HAT 】 | 分数: +2 | 时间:2008-11-24 02:03 |
|
|
|
2008-11-24 00:42 |
|
|
evilangell
初级用户
积分 32
发帖 32
注册 2008-4-18
状态 离线
|
『第
14 楼』:
经测试,未发现问题,非常感谢朋友
|
|
2008-11-24 00:49 |
|