支持,顶上…………… |
沙发! chenall兄出手,必属精品。 对readme.txt类是否考虑? [ 本帖最后由 pseudo 于 2009-12-21 22:44 编辑 ] |
高人,顶顶 |
谢谢分享 |
谢谢分享 |
#在这里快速回复#如果您要查看本帖隐藏内容请回复 |
支持 |
反馈个问题 : 集成这个包:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=323832 完全加载完成后,结构不完整了。 ![]() ![]() |
感谢chenall ,学习一下外置程序petools |
太厉害了 佩服啊 |
好东西啊,用绿色软件的ME有福了! |
原帖由 2012abc19701 于 2012-3-3 03:11 发表 简化了一下: PECMD-32.2012.1除夕版.多窗口多线-U65F裸机系统+18M酷MiniPE http://bbs.wuyou.net/forum.php?mod=viewthread&tid=205402&extra=page%3D1 直接在内存中生成,不需要中间临时文件。 PETOOLS_LINK.WCS: #!PECMD // VER >= PECMD2012.1.U65F SET &&EnviMode=1 //避免意外错误,空变量,外部变量, SET FORCELOCAL=1 //可以处理大变量. 不影响外部变量 ///////LOGS *D:\xx.log //调试记录 CALL PETOOLS_LINK %* //主函数: PETOOLS_LINK //参数: 搜索处理的目录 // 可以是相对目录, .. . 构成的目录 _SUB PETOOLS_LINK FIND $=%StartMenu%, EXIT _SUB FIND $=%~1, EXIT _SUB SET &SETUP= //初始化空表 TEAM SET &SETUP=| SET &LST=| SET ®=| SET &INF=| SET &BLEN=0| SET &BASE_DIR= SET$ &NL=0a //换行 FDIR --full BASE_DIR=%1\ //换成绝对,干净的路径 STRL BLEN=%BASE_DIR% CALC BLEN=%BLEN% + 2 // 1:\ 1:下一位置 LSTR DRV=1,%BASE_DIR% //D SET 外置程序=%StartMenu%\外置程序_%DRV%盘 FILE %外置程序% EXEC* --wd:"%~1" LST=!cmd /c dir /s/a/b *.wim *.cmd *.bat *.exe *.wcs *.wcz readme*.txt 使用说明*.txt FORX *NL LST,LINE, CALL MAKE_LINK "%LINE%" //带有目录 CALL merge "%外置程序%" EXEC* --wd:"%~1" REG=!cmd /c dir /s/a/b SETUP_REG.REG 2>nul FORX *NL REG,LINE, EXEC REGEDIT /S %LINE% //带有目录 EXEC* --wd:"%~1" INF=!cmd /c dir /s/a/b setup.inf 2>nul FORX *NL INF,LINE, EXEC =RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 %LINE% //带有目录 //DEVI %LINE% //直接用DEVI FORX *NL SETUP,LINE, EXEC --wd:*"%LINE%" !%LINE% _END//END_OF_PETOOLS_LINK _SUB MAKE_LINK FIND $=%~1, EXIT _SUB TEAM SET &&MN=| SET &&PT= NAME MN=%~1 FIND $=%MN%, EXIT _SUB FIND $setup=%MN%, TEAM SET SETUP=%SETUP%%NL%%1 | EXIT _SUB //加入SETUP表 FDIR DIR1=%~1 MSTR PT=%BLEN%,-1,%DIR1% //砍掉起始目录BASE_DIR\ ECHO MN=[%PT%] [%PT%\%MN%] LINK %外置程序%\%PT%\%MN%,%~1 _END // END_OF_MAKE_LINK //:PETOOLS_SETUP //这个版本PECMD 可以 --wd:dir 解决 // merge: 对每个子目录, CALL merge_lnk _SUB merge SET &I= // FORX @%~1\*.*,I, CALL merge_lnk "%I%" _END // END_OF_merge // merge_lnk: 一个或空目录,合并到上级目录 _SUB merge_lnk TEAM SET &I= // FORX @%~1\*.*,I, CALL merge_lnk "%I%" //递归调用,深度优先。 TEAM SET &MN=| SET &n=0| SET &MSG=| SET &NUM=| SET &FILE=| SET &DIR=%~1| SET &LINE= FORX %~1\*.*,I, { NAME MN=%I% IFEX ..\%MN%, SET n=9| CALC n=%n% + 1 //上级有重名则不移动 } FIND $%n%>1,! // !多个文件 { EXEC* MSG=!cmd.exe /C dir /a/b %~1\*.* //没有目录名; READ -,-1,NUM,%MSG% LOOP #%I%<=%NUM%, { TEAM READ -,%I%,LINE,%MSG%| CALC I=%I% + 1 IFEX %DIR%\%LINE%,! FILE %FILE%->%DIR%\.. //移动到上级 } EXEC* MSG=!cmd.exe /C dir /a/b %~1\*.* //没有目录名; READ -,-1,NUM,%MSG% IFEX $%NUM%<1, FILE %~1 //删除空目录 } _END //END_OF_merge_lnk _ENDFILE //_ENDFILE 后面部分根本不调入内存,就像不存在 EXIT FILE //<2>PETOOLS.WCS: DSystem mdyblog.blog.163.com //调用方式 //PETOOLS_LNK [PETOOLS目录] //PECMD调用例子,查找所有petools目录。 //FORX @\PETOOLS,TOOLS,0,PECMD LOAD PETOOLS_LINK.WCS "%TOOLS%” //外部脚本 //FORX @\PETOOLS,TOOLS,0,CALL PETOOLS_LINK "%TOOLS%" //嵌入函数 ,直接调函数 //<1>PETOOLS.CMD: chenall ::petools扩展目录搜索安装程序 by chenall [url=http://www.chenall.comhttp://www.chenall.com[/color[/url]] ::思路来源:[url=http://bbs.wuyou.net/viewthread.php?tid=140951http://bbs.wuyou.net/viewthread.php?tid=140951[/color[/url]] ::调用方式 ::PETOOLS_LNK [PETOOLS目录] ::PECMD调用例子,查找所有petools目录。 ::PECMD FORX @\PETOOLS,TOOLS,0,!EXEC CMD /C “PETOOLS_LINK %TOOLS%” ::2009-12-22 第三版,2009-12-23,修改了执行SETUP.BAT/CMD的调用方式为START /W,解决碰到EXIT退出的问题. ::2009-12-23,对于注册表文件只自动注册setup_reg.reg,其它的可以由setup.cmd来调用.以免重复执行 ::具体无忧专贴:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=158014 [ 本帖最后由 2012abc19701 于 2012-5-5 08:41 编辑 ] |
原帖由 hhh333 于 2009-12-22 13:53 发表 PECMD-32.2012.1除夕版.多窗口多线-U65F裸机系统+18M酷MiniPE http://bbs.wuyou.net/forum.php?mod=viewthread&tid=205402&extra=page%3D1 直接在内存中生成,不需要中间临时文件。 PETOOLS_LINK.WCS: #!PECMD // VER >= PECMD2012.1.U65F SET &&EnviMode=1 //避免意外错误,空变量,外部变量, SET FORCELOCAL=1 //可以处理大变量. 不影响外部变量 ///////LOGS *D:\xx.log //调试记录 CALL PETOOLS_LINK %* //主函数: PETOOLS_LINK //参数: 搜索处理的目录 // 可以是相对目录, .. . 构成的目录 _SUB PETOOLS_LINK FIND $=%StartMenu%, EXIT _SUB FIND $=%~1, EXIT _SUB SET &SETUP= //初始化空表 TEAM SET &SETUP=| SET &LST=| SET ®=| SET &INF=| SET &BLEN=0| SET &BASE_DIR= SET$ &NL=0d 0a //换行 FDIR --full BASE_DIR=%1\ //换成绝对,干净的路径 STRL BLEN=%BASE_DIR% CALC BLEN=%BLEN% + 2 // 1:\ 1:下一位置 LSTR DRV=1,%BASE_DIR% //D SET 外置程序=%StartMenu%\外置程序_%DRV%盘 FILE %外置程序% EXEC* --wd:"%~1" LST=!cmd /c dir /s/a/b *.wim *.cmd *.bat *.exe *.wcs *.wcz readme*.txt 使用说明*.txt TEAM SET I=1| READ -,-1,NUM,%LST% LOOP #%I%<=%NUM%, { READ -,%I%,LINE,%LST% CALC I=%I% + 1 CALL MAKE_LINK "%LINE%" //带有目录 } CALL merge "%外置程序%" EXEC* --wd:"%~1" REG=!cmd /c dir /s/a/b SETUP_REG.REG 2>nul TEAM SET I=1| READ -,-1,NUM,%REG% LOOP #%I%<=%NUM%, { READ -,%I%,LINE,%REG% CALC I=%I% + 1 EXEC =REGEDIT /S %LINE% //带有目录 } EXEC* --wd:"%~1" INF=!cmd /c dir /s/a/b setup.inf 2>nul TEAM SET I=1| READ -,-1,NUM,%INF% LOOP #%I%<=%NUM%, { TEAM READ -,%I%,LINE,%INF%| CALC I=%I% + 1 EXEC =RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 %LINE% //带有目录 //DEVI %LINE% //直接用DEVI } TEAM SET I=1| READ -,-1,NUM,%SETUP% LOOP #%I%<=%NUM%, { TEAM READ -,%I%,LINE,%SETUP%| CALC I=%I% + 1 EXEC --wd:*"%LINE%" !%LINE% } _END//END_OF_PETOOLS_LINK _SUB MAKE_LINK FIND $=%~1, EXIT _SUB TEAM SET &&MN=| SET &&PT= NAME MN=%~1 FIND $=%MN%, EXIT _SUB FIND $setup=%MN%, { SET SETUP=%SETUP%%NL%%1 //加入SETUP表 EXIT _SUB } FDIR DIR1=%~1 MSTR PT=%BLEN%,-1,%DIR1% //砍掉起始目录BASE_DIR\ ECHO MN=[%PT%] [%PT%\%MN%] LINK %外置程序%\%PT%\%MN%,%~1 _END // END_OF_MAKE_LINK //:PETOOLS_SETUP //这个版本PECMD 可以 --wd:dir 解决 // merge: 对每个子目录, CALL merge_lnk _SUB merge SET &I= // FORX @%~1\*.*,I, CALL merge_lnk "%I%" _END // END_OF_merge // merge_lnk: 一个或空目录,合并到上级目录 _SUB merge_lnk TEAM SET &I= // FORX @%~1\*.*,I, CALL merge_lnk "%I%" //递归调用,深度优先。 TEAM SET &MN=| SET &n=0| SET &MSG=| SET &NUM=| SET &FILE=| SET &DIR=%~1| SET &LINE= FORX %~1\*.*,I, { NAME MN=%I% IFEX ..\%MN%, SET n=9| CALC n=%n% + 1 //上级有重名则不移动 } FIND $%n%>1,! // EXIT _SUB //多个文件 { EXEC* MSG=!cmd.exe /C dir /a/b %~1\*.* //没有目录名; READ -,-1,NUM,%MSG% LOOP #%I%<=%NUM%, { TEAM READ -,%I%,LINE,%MSG%| CALC I=%I% + 1 IFEX %DIR%\%LINE%,! FILE %FILE%->%DIR%\.. //移动到上级 } EXEC* MSG=!cmd.exe /C dir /a/b %~1\*.* //没有目录名; READ -,-1,NUM,%MSG% IFEX $%NUM%<1, FILE %~1 //删除空目录 } _END //END_OF_merge_lnk _ENDFILE //_ENDFILE 后面部分根本不调入内存,就像不存在 EXIT FILE //<2>PETOOLS.WCS: DSystem mdyblog.blog.163.com //调用方式 //PETOOLS_LNK [PETOOLS目录] //PECMD调用例子,查找所有petools目录。 //FORX @\PETOOLS,TOOLS,0,PECMD LOAD PETOOLS_LINK.WCS "%TOOLS%” //外部脚本 //FORX @\PETOOLS,TOOLS,0,CALL PETOOLS_LINK "%TOOLS%" //嵌入函数 ,直接调函数 //<1>PETOOLS.CMD: chenall ::petools扩展目录搜索安装程序 by chenall [url=http://www.chenall.comhttp://www.chenall.com[/color[/url]] ::思路来源:[url=http://bbs.wuyou.net/forum.php?mod=viewthread&tid=140951http://bbs.wuyou.net/forum.php?mod=viewthread&tid=140951[/color[/url]] ::调用方式 ::PETOOLS_LNK [PETOOLS目录] ::PECMD调用例子,查找所有petools目录。 ::PECMD FORX @\PETOOLS,TOOLS,0,!EXEC CMD /C “PETOOLS_LINK %TOOLS%” ::2009-12-22 第三版,2009-12-23,修改了执行SETUP.BAT/CMD的调用方式为START /W,解决碰到EXIT退出的问题. ::2009-12-23,对于注册表文件只自动注册setup_reg.reg,其它的可以由setup.cmd来调用.以免重复执行 ::具体无忧专贴:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=158014 |
那请问考虑到这种情况没:某软件用。REG文件(或INF)记录注册数据,然后有没有别的REG文件,然后你用REG注册,就会报错,影响执行效率,起码一个错误在那影响雅观吧?因此建议增加检查REG有效性,就是读REG文件开头是否有Windows Registry Editor Version 5.00或REGEDIT4这一行(INF文件读开头是否有[Verison]这一行),没有就跳过 |
请教为什么我将别人做好的petools.ini搬过来时无法完全显示列表,只显示1盘PETOOLS-Target,后面就没在显示了。 如果点这个target,倒是跳到对应的目录。 |
請問,Noname XPE 是否能以此應用,搜索其Outtools的外置程序,為將其完全藏入UD中? 可否詳細說明一下如何配置... |
收藏学习了,真是好文章 |
又一个精品。谢谢楼主,太谢谢了, |
使用第三版 搜索前: PETOOLS ┃ ┣━PXE服务器 ┃ ┣━镜像工具 ┃ ┣━硬件检测 ┃ ┣━备用驱动 ┃ ┃ DriversVM显声网驱动.CAB ┃ 别说缺驱动.txt ┃ 万能显卡驱动.7z ┃ 万能显卡驱动.CMD ┃ ┣━网络工具 ┃ 搜索后: 外置程序_H盘 ┃ ┣━PXE服务器 ┃ ┣━镜像工具 ┃ ┣━硬件检测 ┃ ┣━万能显卡驱动.CMD ┃ ┣━网络工具 ┃ 搜索后,【备用驱动】文件夹没了,里面的万能显卡驱动.CMD提到外置程序_H盘下面 |
支持 又学习了一样东西 O(∩_∩)O~ |
感谢haiou327 大的指引,你推荐的#463楼的附件已下载测试,我依照那方法及用你的调用CMD方式加载,或附件内的方式加载都不成功,不是沒有反应,便是蓝屏死机,看来不大好用。 到现在为止,还是感觉 PETOOLS.INI 易用及稳定,唯一缺点是所有PETOOLS目录下的文件,都全部显现出来,可有高手能编辑一下PETOOLS.INI内容,使能只显示 *.wim *.cmd *.bat *.exe *.txt 等文件,这真是太好了。 再次感谢haiou327 大的帮忙与热心! ![]() |
如果在PECMD.ini加载 在LINK段增加 FORX @\PETOOLS,TOOLS,0,!EXEC PETOOLS_LINK.CMD %TOOLS% 也可以调用CMD方式加载,内容如下 PECMD FORX @\PETOOLS,TOOLS,0,!EXEC PETOOLS_LINK.CMD %TOOLS% 在PECMD配制文件里创建cmd文件的快捷方式到指定开始菜单里 例程可以下载有加载PETOOL_LINK的PE解开PECMD.ini查看 这里有一个#463楼下载附件参考里面的PEcmd.INI,用的是CHENall第三版 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=160583&page=47#pid1910474 |
謝謝haiou327 大的指點 我是用樓主的第三版加載的,與用#71 kendling 的最新修改版同樣加載,但第三版藍屏死機, 而修改版可正常啟動,只出現#74樓的情況吧! 可否發個Chenall的PETOOL_link及安裝說明給我學習、學習。 |
"if exist "%_TF%SETUP.LST" for /f "usebackq delims=" %%i in ("%_TF%SETUP.LST") do CALL :PETOOLS_SETUP %%i" 调用 PECMD EXEC !%~nx1 去掉这句就不会在加载PETOOL_link时直接执行EXEC !%~nx1,SETUP.wim SETUP.cmd SETUP.bat SETUP.exe档,只会创建*.wim *.cmd *.bat *.exe readme*.txt 使用说明*.txt快捷方式到%外置程序_%~d1盘目录,加载PETOOL蓝屏死机,说说加载的方法,如果方法正确的话,可以试试只在PETOOL里存放最少文件保留一个EXE文件看能否成功,兰屏死机看看PETooL里是否有setup_reg.reg,setup.inf,*.wim *.cmd *.bat *.exe档为SETUP,有可能是在运行这些文件时出的问题,先试试揪出这些文件来看是否成功。 PETOOL_Link是经多人测试,如果存在加载蓝屏死机早就开锅了 你也可以在加载不成功的话屏掉这两句再加载 ![]() 这里是我用Chenall的PETOOL_link的一个效果截图,没有出现过你所说过问题 [ 本帖最后由 haiou327 于 2010-4-7 14:45 编辑 ] |
回复 #75 haiou327 的帖子 我看並不是這樣,如1、問題,含setup的子目錄內,不只有一个setup程序的,但整個目錄不見出現在PETOOLS目錄內,但在進入PE後即會啟動該程序,我將以下此句抽出,便沒有啟動了。 "if exist "%_TF%SETUP.LST" for /f "usebackq delims=" %%i in ("%_TF%SETUP.LST") do CALL :PETOOLS_SETUP %%i" 我是用#71樓的最新修改的。 另我試了樓主的第三版,當進入PE前,便出現藍畫面死機了,試多次也一樣。 |
如果子目录只含一个单独程序,只把该快捷方式建立到上一层。如下例IWNHEX快捷方式只出现在其它工具里,WINHEX目录不出现
setup.inf文件 RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 setup.inf [ 本帖最后由 haiou327 于 2010-4-7 14:05 编辑 ] |
試了,有些問題如下: 1、一開始,便執行有setup檔的PETOOLS目錄,但該目錄沒有出現在PETOOLS目錄, 想請教若PETOOLS目錄內,有不同的setup檔,它怎樣執行呢? 2、PETOOLS目錄內,不是所有的目錄都能找到,如上1、的例子,目錄是沒有出現, 但奇怪它會執行了setup檔呢? 請高手指教。 |
要試試看,是否比以往的好。 |
的确很方便 实用啊! |
最新修改: 支持desktop.ini文件,前一版本只复制,无法按desktop.ini显示。问题是desktop.ini所在目录没有设为只读。 -------------------------------------------------------------------------------------- ::http://bbs.wuyou.net/forum.php?mod=viewthread&tid=158014&page=1&extra= ::chenall发表于 2009-12-21 22:34 ::modified by Kend 2010-03-30 QQ:288435 ::发一个重新写的petools搜索配置 ::用的是批处理配合PECMD的LINK功能。 ::大家可以试一下: ::规则 ::1.有找到REG文件就先执行注册该文件。 ::2.有找到PECMD.INI就不进行创建快捷方式,而是直接调用PECMD.INI(用于自定义),并且不再找下一级目录。(新版不支持这个) ::3.有找到SETUP.BAT,setup.inf,setup.cmd,自动执行安装 ::4.搜到*.exe,*.wim,*.bat,*.cmd,并且不是SETUP.*的就创建快捷方式。 ::5.单个快捷方式合并(比如\其它工具\WINHEX\目录下只有一个WINHEX程序,则会把快捷方式创建在<其它工具>目录下). ::petools扩展目录搜索安装程序 by chenall [url=http://www.chenall.comhttp://www.chenall.com[/color[/url]] ::思路来源:[url=http://bbs.wuyou.net/forum.php?mod=viewthread&tid=140951http://bbs.wuyou.net/forum.php?mod=viewthread&tid=140951[/color[/url]] ::调用方式 ::PETOOLS_LNK [PETOOLS目录] ::PECMD调用例子,查找所有petools目录。 ::PECMD FORX @\PETOOLS,TOOLS,0,!EXEC PETOOLS_LINK %TOOLS% ::2009-12-22 第三版,2009-12-23,修改了执行SETUP.BAT/CMD的调用方式为START /W,解决碰到EXIT退出的问题. ::2009-12-23,对于注册表文件只自动注册setup_reg.reg,其它的可以由setup.cmd来调用.以免重复执行 ::具体无忧专贴:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=158014 @echo off if "%~1"=="" goto :eof if not defined StartMenu goto :eof if "%~1"=="merge" goto :merge if not exist "%~1" goto :eof SET "BASE_DIR=%~1" SET "外置程序=%LNG_PETOOLS1%%~d1%LNG_PETOOLS2%" SET "外置程序=%StartMenu%\%外置程序::=%" SET "_TF=%WinDir%\T_PETOOLS_%base_dir:~0,1%_" IF EXIST "%外置程序%" RD /S /Q "%外置程序%" 2>nul :START DEL "%_TF%*.*" 2>nul PUSHD "%~F1" >%_TF%LST.lst dir /s/a/b *.wim *.cmd *.bat *.exe readme*.txt 使用说明*.txt desktop.ini POPD PUSHD "%WinDir%" for /f "usebackq delims=" %%i in (%_TF%LST.lst) do CALL :MAKE_LINK "%%i" ECHO.EXEC !%~F0 merge "%外置程序%" >>%_TF%LNK.INI ECHO.FILE %_TF%LNK.INI>>%_TF%LNK.INI START PECMD LOAD %_TF%LNK.INI PUSHD "%~F1" >"%_TF%REG.lst" dir /s/a/b SETUP_REG.REG 2>nul >"%_TF%INF.lst" dir /s/a/b setup.inf 2>nul POPD if exist "%_TF%REG.LST" for /f "usebackq delims=" %%i in ("%_TF%REG.LST") do REGEDIT /S "%%i" if exist "%_TF%INF.lst" for /f "usebackq delims=" %%i in ("%_TF%INF.lst") do RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 %%i if exist "%_TF%SETUP.LST" for /f "usebackq delims=" %%i in ("%_TF%SETUP.LST") do CALL :PETOOLS_SETUP %%i DEL %_TF%*.lst POPD goto :eof :MAKE_LINK SETLOCAL if "%~1"=="" goto :eof ::如果有包含AutoRuns就跳过. echo.%1|find /i "\AutoRuns\" &&goto :eof if /i "%~n1"=="setup" ( echo.%1 >>"%_TF%SETUP.LST" goto :eof ) SET ".=%~1" SET ".=%.:&=^&%" :: Kend 增加 SET ".=%.:^=^^%" SET ".=%.:(=^(%" SET ".=%.:)=^)%" SET ".=%.:[=^[%" SET ".=%.:]=^]%" SET ".=%.:{=^{%" SET ".=%.:}=^}%" SET ".=%.:;=^;%" SET ".=%.:'=^'%" SET ".=%.:+=^+%" SET ".=%.:,=^,%" SET ".=%.:`=^`%" :: Kend 增加 SET "PETOOLS=%~dpn1" call,SET "PETOOLS=%%PETOOLS:%BASE_DIR%=%外置程序%%%" SET "PETOOLS=%PETOOLS:&=^&%" :: Kend 增加 SET "PETOOLS=%PETOOLS:^=^^%" SET "PETOOLS=%PETOOLS:(=^(%" SET "PETOOLS=%PETOOLS:)=^)%" SET "PETOOLS=%PETOOLS:[=^[%" SET "PETOOLS=%PETOOLS:]=^]%" SET "PETOOLS=%PETOOLS:{=^{%" SET "PETOOLS=%PETOOLS:}=^}%" SET "PETOOLS=%PETOOLS:;=^;%" SET "PETOOLS=%PETOOLS:'=^'%" SET "PETOOLS=%PETOOLS:+=^+%" SET "PETOOLS=%PETOOLS:,=^,%" SET "PETOOLS=%PETOOLS:`=^`%" :: Kend 增加 if /i "%~nx1" == "desktop.ini" ( echo.FILE %.%=^>%PETOOLS%.ini>>%_TF%LNK.INI echo.SITE %PETOOLS%.ini,+R+H+S>>%_TF%LNK.INI ) else ( echo.LINK %PETOOLS%,%.%>>%_TF%LNK.INI ) GOTO :EOF :PETOOLS_SETUP ::为什么需要这些步骤呢,因为考虑到有一些批处理对执行目录的要求(编写时没有考虑到),所以才需要进入批处理目录执行.否则可能会出错.表面上是执行了,其实执行的结果是错误的.用PECMD调用同样会有这样的问题. PUSHD "%~dp1" PECMD EXEC !%~nx1 POPD goto :eof :merge PUSHD %2||GOTO :EOF for /d %%i in ("%~2\*") do ( call :merge_lnk "%%i" attrib +r "%%i" 2>nul ) POPD goto :eof :merge_lnk CD /D %1||GOTO :EOF for /d %%i in ("%~f1\*") do call %0 "%%i" CD /D %1||GOTO :EOF set n= for /f %%i in ('dir /a/b') do ( if defined n goto :eof set n=1 ) for /f "usebackq delims=" %%i in (`dir /a/b`) do move /y "%%i" ..\ cd ..&&rd %1 goto :eof -------------------------------------------------------------------------------------- |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.