在任一win環(huán)境下建立好快捷方式后,通過腳本提取它的路徑,并修改為當(dāng)前PE適合的路徑建立新的快捷方式,所以調(diào)用腳本后相應(yīng)的快捷方式(PE的桌面、開始菜單等)是能用的,而“U盤\自由程序\快捷方式”里的快捷方式不一定能用。
功能:把要使用的程序放到U盤或其他盤的根目錄下的“自由程序”文件夾里,進(jìn)入相應(yīng)程序的文件夾,為要執(zhí)行的文件建立快捷方式(在什么系統(tǒng)下建立都沒有問題,XP下也行,正常的windows就行),并把快捷方式復(fù)制到 “自由程序\快捷方式”下的相應(yīng)文件夾內(nèi),當(dāng)PE啟動并執(zhí)行本腳本后,就會在相應(yīng)的地方建立快捷方式。
示例:FINALDATA,要建立的快捷方式為"開始菜單\程序\數(shù)據(jù)恢復(fù)\FINALDATA",做法如下:
(本操作不一定要在PE下完成,所有的windows都行)
1、復(fù)制“FINALDATA”文件夾到U盤根目錄下的“自由程序”文件夾內(nèi),
2、進(jìn)入U(xiǎn)盤\自由程序\FINALDATA ,為FINALDATA.exe和FINALDATA.reg建立快捷方式
3、FINALDATA.exe的快捷方式復(fù)制到 U盤\自由程序\快捷方式\開始菜單\程序\數(shù)據(jù)恢復(fù)\ 里,F(xiàn)INALDATA.reg的快捷方式菜單復(fù)制到 U盤\自由程序\快捷方式\執(zhí)行\(zhòng) 里,當(dāng)PE啟動并執(zhí)行本腳本后,就會運(yùn)行FINALDATA.reg注冊FINALDATA,并在相應(yīng)的地方建立了快捷方式。
對非exe格式的程序,快捷方式的圖標(biāo)會是隨機(jī)的
執(zhí)行文件夾里面放你的REG、CMD、等的注冊文件,就是你的程序執(zhí)行前要執(zhí)行的,把快捷方式放里面就行啦。!“快捷方式”里面放的都要是快捷方式哦!
程序如下,文件名為 LINKS.CMD,腳本為PECMD和MS-DOS格式混編,調(diào)用時(shí)可直接運(yùn)行或用PECMD的LOAD命令(推薦)
本腳本在XP SP3 CMD.EXE(5.1.2600) PECMD.EXE(3.6.0930.309)下通過測試,其他環(huán)境請自測
::`腳本開始
GOTO CMDMODE
_SUB CMDMODE
:CMDMODE
setlocal enabledelayedexpansion
ECHO OFF
CLS&>%TEMP%\LINKS.INI ECHO.
IF %1.==. GOTO NOTPECMD
SET PRODIRNAME=%1
SET LINKSDIR=%PRODIR%\快捷方式
FOR %%K IN (開始菜單 桌面 執(zhí)行 開機(jī)啟動 快速啟動 發(fā)送到 收藏夾 我的文檔) DO (
SET FROMDIR=%%K
IF !FROMDIR!.==開始菜單. (SET TODIR=%StartMenu%) ELSE (
IF !FROMDIR!.==桌面. (SET TODIR=%Desktop%) ELSE (
IF !FROMDIR!.==執(zhí)行. (SET _SETUP=1) ELSE (
IF !FROMDIR!.==快速啟動. (SET TODIR=%QuickLaunch%) ELSE (
IF !FROMDIR!.==發(fā)送到. (SET TODIR=%SendTo%) ELSE (
IF !FROMDIR!.==開機(jī)啟動. (SET TODIR=%Startup%) ELSE (
IF !FROMDIR!.==收藏夾. (SET TODIR=%Favorites%) ELSE (
IF !FROMDIR!.==我的文檔. SET TODIR=%Personal%
) ) ) ) ) ) )
IF EXIST "%LINKSDIR%\!FROMDIR!" FOR /F "TOKENS=*" %%I IN ('DIR /a /b /S "%LINKSDIR%\!FROMDIR!\*.LNK"') DO (
SET II=%%I
SET II=!II:~13,-4!
FOR /F "TOKENS=1,* DELIMS=\" %%a IN ('ECHO !II!') DO SET LNKPATH=%%b
FOR /F "TOKENS=*" %%J IN ('TYPE "%%I"^|FIND "\"^|FIND "."') DO (
FOR /F "TOKENS=1,* DELIMS=%1" %%A IN ('ECHO %%J') DO (
SET _EXT=%%B
SET _EXT=!_EXT:~-3!
IF NOT !_SETUP!.==1. (
IF /I NOT !_EXT!.==EXE. (
SET /A _ICOID=%RANDOM%%%222
SET _ICON=,,SHELL32.DLL#!_ICOID!
>>%TEMP%\LINKS.INI ECHO LINK !TODIR!\!LNKPATH!,!PRODIR!%%B!_ICON!
) ELSE (
>>%TEMP%\LINKS.INI ECHO LINK !TODIR!\!LNKPATH!,!PRODIR!%%B
)
) ELSE (
IF /I !_EXT!.==REG. (
>>%TEMP%\LINKS.INI ECHO EXEC REGEDIT.EXE /S !PRODIR!\%%B
) ELSE (
>>%TEMP%\LINKS.INI ECHO EXEC @!PRODIR!%%B
)
)
)
)
)
)
GOTO END
:NOTPECMD
ECHO.
ECHO.
ECHO.
ECHO 功能:把要使用的程序放到U盤或其他盤的根目錄下的“自由程序”文件夾里,進(jìn)入相應(yīng)
ECHO 程序的文件夾,為要執(zhí)行的文件建立快捷方式(在什么系統(tǒng)下建立都沒有問題,XP下也
ECHO 行,正常的windows就行),并把快捷方式復(fù)制到 “自由程序\快捷方式”下的相應(yīng)文件
ECHO 夾內(nèi),當(dāng)PE啟動并執(zhí)行本腳本后,就會在相應(yīng)的地方建立快捷方式。
ECHO.
ECHO.
ECHO
PECMD LOAD LINKS.CMD
GOTO END
_END
FORX @\自由程序,PRODIR,0,EXEC =!LINKS.CMD 自由程序
TEAM LOAD %TEMP%\LINKS.INI|FILE %TEMP%\LINKS.INI
MESS 加載成功!@加載成功 #OK *500 `這里是完成后的提示信息,可以取消
:END
::`腳本結(jié)束
本腳本運(yùn)行過程會生成臨時(shí)文件(完成后會刪除),如果不想生成臨時(shí)文件,請把>>%TEMP%\LINKS.INI ECHO替換為PECMD,不過運(yùn)行效率會降低。
附文件目錄結(jié)構(gòu):
V:\自由程序
V:\自由程序\程序1
V:\自由程序\程序2
V:\自由程序\快捷方式
V:\自由程序\快捷方式\執(zhí)行
V:\自由程序\快捷方式\桌面
V:\自由程序\快捷方式\開機(jī)啟動
V:\自由程序\快捷方式\快速啟動
V:\自由程序\快捷方式\發(fā)送到
V:\自由程序\快捷方式\收藏夾
V:\自由程序\快捷方式\我的文檔
V:\自由程序\快捷方式\開始菜單
V:\自由程序\快捷方式\開始菜單\程序