[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]求修改批处理:搜索文件夹里面的.lnk快捷方式

完美解决了(PE下能够运行代码):
  1. [code]
  2. @echo off
  3. ::【检测(是否在PE中运行),是向下运行,否跳到:A】
  4. if not exist "X:\windows\"   goto :A
  5. ::********************************************
  6. ::【lnk文件关联】
  7. reg add "HKCR\lnkfile" /f /ve /t REG_SZ /d "快捷方式"
  8. reg add "HKCR\lnkfile" /f /v "EditFlags" /t REG_DWORD /d 1
  9. reg add "HKCR\lnkfile" /f /v "IsShortcut" /t REG_SZ /d ""
  10. reg add "HKCR\lnkfile" /f /v "NeverShowExt" /t REG_SZ /d ""
  11. ::*********************************************************
  12. ::【生成 “开机运行” 所有文件路径(含扩展名),保存为:#.txt】
  13. cd /d "D:\PE整理碎片(很好)\修改PE\启动\开机运行\"
  14. DIR /S/B >"X:\#.txt"
  15. ::*********************************************************
  16. ::【行首行尾添加字符,生成并运行:启动.vbs】
  17. cd /d "X:\"
  18. set "strOne=CreateObject(^"WScript.Shell^").Run ^"cmd /c  " %【行首添加字符】%
  19. set "strTwo=^",0" %【行尾添加字符】%
  20. for /f "tokens=*" %%i in (#.txt) do (>>启动.vbs echo %strOne%%%i%strTwo%)
  21. 启动.vbs
  22. del #.txt 启动.vbs
  23. exit
  24. ::********************************************
  25. :A
  26. exit
复制代码

****************************
(下面代码正常系统正常,PE下不行)
  1. @echo off
  2. for %%c in (D:\桌面\Desktop\00\*.lnk) do (
  3.         set t=%%c
  4.         call :cre
  5. )>>"temp.vbs"
  6. temp.vbs
  7. ::del temp.vbs
  8. exit
  9. :cre
  10. echo CreateObject("WScript.Shell").Run "%t%",0
复制代码
****************************************************************************
原来的问题:
文件夹:D:\桌面\Desktop\00\里面  有多个.lnk文件
希望运行批处理以后,得到temp.vbs文件内容形如:
  1. CreateObject("WScript.Shell").Run "D:\桌面\Desktop\00\重新启动.bat.lnk",0
  2. CreateObject("WScript.Shell").Run "D:\桌面\Desktop\00\手动-备份桌面图标位置.bat.lnk",0
  3. ... ...
复制代码
************************************************************************
现有批处理:
  1. @echo off
  2. for %%c in (D:\桌面\Desktop\00\*.lnk) do set   T=%%c
  3. >>"temp.vbs" echo CreateObject("WScript.Shell").Run "%T%",0
  4. temp.vbs
  5. ::del temp.vbs
  6. exit
复制代码
运行以后,temp.vbs文件内容只有一行:
  1. CreateObject("WScript.Shell").Run "D:\桌面\Desktop\00\重新启动.bat.lnk",0
复制代码
怎样才能够将所以的.lnk文件路径全部添加到temp.vbs文件里面?
谢谢
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
我是小白,希望老师多多帮助

  1. @echo off
  2. for %%c in (D:\桌面\Desktop\00\*.lnk) do (
  3.         echo CreateObject("WScript.Shell").Run "%%c",0
  4. )>"temp.vbs"
  5. temp.vbs
  6. ::del temp.vbs
  7. exit
复制代码
试试这样行吗
1

评分人数

bat小白,请多指教!谢谢!

TOP

试试这样行吗
77七 发表于 2023-1-12 13:52



    我试一试先 谢谢
我是小白,希望老师多多帮助

TOP

试试这样行吗
77七 发表于 2023-1-12 13:52



    不能够生成temp.vbs哦
我是小白,希望老师多多帮助

TOP

回复 4# yyz219
  1. @echo off
  2. for %%c in (D:\桌面\Desktop\00\*.lnk) do (
  3.         set t=%%c
  4.         call :cre
  5. )>>"temp.vbs"
  6. temp.vbs
  7. ::del temp.vbs
  8. exit
  9. :cre
  10. echo CreateObject("WScript.Shell").Run "%t%",0
复制代码
好奇怪,不知道为什么不能生成...
bat小白,请多指教!谢谢!

TOP

回复  yyz219
好奇怪,不知道为什么不能生成...
77七 发表于 2023-1-12 14:29



    我在试一试 辛苦了
我是小白,希望老师多多帮助

TOP

回复  yyz219
好奇怪,不知道为什么不能生成...
77七 发表于 2023-1-12 14:29



    成功了 再次感谢
我是小白,希望老师多多帮助

TOP

返回列表