无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6462|回复: 10
打印 上一主题 下一主题

[求助] 求一个在PE中使用的把一个应用程序的已经存在的快捷方式发送到PE的桌面的批处理

[复制链接]
跳转到指定楼层
1#
发表于 2017-12-3 19:21:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
        求一个在PE中使用的把一个U盘中的应用程序的已经存在的快捷方式发送到PE的桌面的批处理,谢谢!!!
2#
发表于 2017-12-3 19:33:42 | 只看该作者
直接用 copy 不就行了


set "PathDesktop=%USERPROFILE%\Desktop"
set "Lnk=U:\test.lnk"

copy "%Lnk%" "%PathDesktop%">nul

点评

谢谢!!!已经试验成功,但需要绝对路径: set "PathDesktop=%USERPROFILE%\Desktop" set "Lnk=F:\A-在PE下使用的单文件版的工具软件\3-Diskgeniu-s\DiskGeniu-s_x64\DiskGeniu-s_x64.exe.lnk" copy  详情 回复 发表于 2017-12-3 20:15
回复

使用道具 举报

3#
 楼主| 发表于 2017-12-3 20:15:55 | 只看该作者
comzhongwy 发表于 2017-12-3 19:33
直接用 copy 不就行了

        谢谢!!!已经试验成功,但需要绝对路径:

set "PathDesktop=%USERPROFILE%\Desktop"
set "Lnk=F:\A-在PE下使用的单文件版的工具软件\3-Diskgeniu-s\DiskGeniu-s_x64\DiskGeniu-s_x64.exe.lnk"

copy "%Lnk%" "%PathDesktop%">nul

        麻烦能否想法改为相对路径,因为启动U盘插到不同的电脑上,其盘符常常是不同的,如果只能是绝对路径的话,就没有什么实

用意义了,谢谢!!!

点评

相对路径,可以直接写 "." 表示当前目录,就是 %cd% 变量,可以这样写 “.\test.txt”,相当于 “%cd%\test.txt” 当然用这个可能出问题,你必须清楚知道 %cd% 工作目录是什么,比如切换到管理员权限会变成 “C:\  详情 回复 发表于 2017-12-3 20:32
回复

使用道具 举报

4#
发表于 2017-12-3 20:32:57 | 只看该作者
本帖最后由 comzhongwy 于 2017-12-3 20:34 编辑
有阴也有阳 发表于 2017-12-3 20:15
谢谢!!!已经试验成功,但需要绝对路径:

set "PathDesktop=%USERPROFILE%\Desktop"


相对路径,可以直接写 "." 表示当前目录,就是 %cd% 变量,可以这样写 “.\test.txt”,相当于 “%cd%\test.txt”

当然用这个可能出问题,你必须清楚知道 %cd% 工作目录是什么,比如切换到管理员权限会变成 “C:\Windows\system32”
可以在获取管理员权限后加一句,回到 bat 所在目录:
pushd "%CD%" & CD /D "%~dp0"

如果要在切换目录后继续用,就保存到一个变量,这里第二句是为了去掉路径最后的 “\”
set "PathBat=%~dp0"
set "PathBat=%PathBat:~0,-1%"


bat 所在盘符也可以保存到变量

set "disk=%~d0"

点评

改成: set "PathDesktop=%USERPROFILE%\Desktop" set "Lnk=.\3-Diskgeniu-s\DiskGeniu-s_x64\DiskGeniu-s_x64.exe.lnk" copy "%Lnk%" "%PathDesktop%">nul 后已经试验成功,但不知道为什么它不能被被另外  详情 回复 发表于 2017-12-3 21:05
回复

使用道具 举报

5#
 楼主| 发表于 2017-12-3 21:05:09 | 只看该作者
本帖最后由 有阴也有阳 于 2017-12-3 21:07 编辑
comzhongwy 发表于 2017-12-3 20:32
相对路径,可以直接写 "." 表示当前目录,就是 %cd% 变量,可以这样写 “.\test.txt”,相当于 “%cd%\ ...


改成:

set "PathDesktop=%USERPROFILE%\Desktop"
set "Lnk=.\3-Diskgeniu-s\DiskGeniu-s_x64\DiskGeniu-s_x64.exe.lnk"

copy "%Lnk%" "%PathDesktop%">nul

后已经试验成功,但不知道为什么它不能被被另外一个bat所运行,却能被另外一个bat将其快捷方式挂载到桌面,

在桌面点击其快捷方式后则能正常运行:



另外一个bat的内容是:

PECMD.EXE LINK %Desktop%\挂载U盘里面的Diskgeniu-s,挂载U盘里面的Diskgeniu-s.bat
PECMD.EXE \A-在PE下使用的单文件版的工具软件\WinNTSetup_V3.8.7.3版\1.bat
PECMD.EXE \A-在PE下使用的单文件版的工具软件\EasyImageX_v1.62\1.bat
PECMD.EXE \A-在PE下使用的单文件版的工具软件\一键智能装机助理标准版V3.7.2\1.bat
PECMD.EXE \A-在PE下使用的单文件版的工具软件\安装Ghost系统的利器——DBCGhost.exe\1.bat
PECMD.EXE \A-在PE下使用的单文件版的工具软件\BIOS及UEFI引导修复\1.bat

挂载命令能正常执行:

PECMD.EXE LINK %Desktop%\挂载U盘里面的Diskgeniu-s,挂载U盘里面的Diskgeniu-s.bat

运行命令却不能正常执行:

PECMD.EXE \A-在PE下使用的单文件版的工具软件\挂载U盘里面的Diskgeniu-s.bat

而运行其它bat的运行命令却能正常执行,例如:

PECMD.EXE \A-在PE下使用的单文件版的工具软件\WinNTSetup_V3.8.7.3版\1.bat

不知可有何好的解决办法?

谢谢!!!

点评

调用另一个 bat 要么用 start,要么用 call ,或者用 cmd ,这三个命令都可以 不知道你为什么会用 PECMD.EXE,这个调用的应该是 PECMD 脚本,或者 PECMD 命令 PECMD.EXE LINK %Desktop%\挂载U盘里面的Diskgeniu-  详情 回复 发表于 2017-12-3 21:25
回复

使用道具 举报

6#
发表于 2017-12-3 21:25:33 | 只看该作者
有阴也有阳 发表于 2017-12-3 21:05
改成:

set "PathDesktop=%USERPROFILE%\Desktop"

调用另一个 bat 要么用 start,要么用 call ,或者用 cmd ,这三个命令都可以

不知道你为什么会用 PECMD.EXE,这个调用的应该是 PECMD 脚本,或者 PECMD 命令

PECMD.EXE LINK %Desktop%\挂载U盘里面的Diskgeniu-s,挂载U盘里面的Diskgeniu-s.bat
就是一条 PECMD 命令,可以在 bat 里面写

bat 后缀一般是 cmd 批处理
PECMD 脚本大多用 ini 作后缀,当然随便改也行,但是最好区别开,我觉得可能是你把两个弄混了。
回复

使用道具 举报

7#
发表于 2017-12-12 23:00:16 | 只看该作者
我来挖下坟~~~
和之前另外几个帖子说的一样,还是用 for ,通过其他程序调用或者直接加到其他批处理都可以
  1. for %%i in ( C D E F G H I J K L M N O P Q R S T U V W ) do if exist "%%i:\XX\XX.LNK" copy "%%i:\XX\XX.LNK" "%USERPROFILE%\Desktop"
复制代码

点评

谢谢你多次的热心答复、帮助!谢谢!!!  详情 回复 发表于 2017-12-13 09:21
回复

使用道具 举报

8#
 楼主| 发表于 2017-12-13 09:21:04 | 只看该作者
永远的大象 发表于 2017-12-12 23:00
我来挖下坟~~~
和之前另外几个帖子说的一样,还是用 for ,通过其他程序调用或者直接加到其他批处理都可以 ...

谢谢你多次的热心答复、帮助!谢谢!!!
回复

使用道具 举报

9#
发表于 2017-12-13 09:47:24 | 只看该作者
突然想到另一种写法:用%~dp0来表示批处理所在目录,比如X:\AA\XX\XX.lnk,批处理在AA文件夹里面,同样可以被其他批处理调用
  1. copy "%~dp0XX\XX.lnk" "%USERPROFILE%\Desktop"
复制代码

点评

谢谢!!!  详情 回复 发表于 2017-12-13 10:31
回复

使用道具 举报

10#
 楼主| 发表于 2017-12-13 10:31:29 | 只看该作者
永远的大象 发表于 2017-12-13 09:47
突然想到另一种写法:用%~dp0来表示批处理所在目录,比如X:\AA\XX\XX.lnk,批处理在AA文件夹里面,同样可以 ...

谢谢!!!
回复

使用道具 举报

11#
发表于 2017-12-13 11:24:14 | 只看该作者
国外早就有另外一种解决方案,在任何一个盘有一个pstart文件夹,内有pstart.exe,pe中开启自动搜索pstart文件夹,若找到则自动运行pstart.exe程序,该程序可提前包含绿色程序,他支持相对路径,目前只有32位程序,但是可以在32位和64位pe中使用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-25 13:16

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表