完美解决了(PE下能够运行代码):- [code]
- @echo off
- ::【检测(是否在PE中运行),是向下运行,否跳到:A】
- if not exist "X:\windows\" goto :A
- ::********************************************
- ::【lnk文件关联】
- reg add "HKCR\lnkfile" /f /ve /t REG_SZ /d "快捷方式"
- reg add "HKCR\lnkfile" /f /v "EditFlags" /t REG_DWORD /d 1
- reg add "HKCR\lnkfile" /f /v "IsShortcut" /t REG_SZ /d ""
- reg add "HKCR\lnkfile" /f /v "NeverShowExt" /t REG_SZ /d ""
- ::*********************************************************
- ::【生成 “开机运行” 所有文件路径(含扩展名),保存为:#.txt】
- cd /d "D:\PE整理碎片(很好)\修改PE\启动\开机运行\"
- DIR /S/B >"X:\#.txt"
- ::*********************************************************
- ::【行首行尾添加字符,生成并运行:启动.vbs】
- cd /d "X:\"
- set "strOne=CreateObject(^"WScript.Shell^").Run ^"cmd /c " %【行首添加字符】%
- set "strTwo=^",0" %【行尾添加字符】%
- for /f "tokens=*" %%i in (#.txt) do (>>启动.vbs echo %strOne%%%i%strTwo%)
- 启动.vbs
- del #.txt 启动.vbs
- exit
- ::********************************************
- :A
- exit
复制代码
****************************
(下面代码正常系统正常,PE下不行)- @echo off
- for %%c in (D:\桌面\Desktop\00\*.lnk) do (
- set t=%%c
- call :cre
- )>>"temp.vbs"
- temp.vbs
- ::del temp.vbs
- exit
-
- :cre
- echo CreateObject("WScript.Shell").Run "%t%",0
复制代码 ****************************************************************************
原来的问题:
文件夹:D:\桌面\Desktop\00\里面 有多个.lnk文件
希望运行批处理以后,得到temp.vbs文件内容形如:- CreateObject("WScript.Shell").Run "D:\桌面\Desktop\00\重新启动.bat.lnk",0
- CreateObject("WScript.Shell").Run "D:\桌面\Desktop\00\手动-备份桌面图标位置.bat.lnk",0
- ... ...
复制代码 ************************************************************************
现有批处理:- @echo off
- for %%c in (D:\桌面\Desktop\00\*.lnk) do set T=%%c
- >>"temp.vbs" echo CreateObject("WScript.Shell").Run "%T%",0
- temp.vbs
- ::del temp.vbs
- exit
复制代码 运行以后,temp.vbs文件内容只有一行:- CreateObject("WScript.Shell").Run "D:\桌面\Desktop\00\重新启动.bat.lnk",0
复制代码 怎样才能够将所以的.lnk文件路径全部添加到temp.vbs文件里面?
谢谢 |