无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4815|回复: 11
打印 上一主题 下一主题

求教 PE任意位置安装程序(setx.exe strrpc.exe)?

[复制链接]
跳转到指定楼层
1#
发表于 2008-3-16 15:04:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很想在小小强的pe里面安装WMP10(在线版),可是小小强pe内,没有B盘,
在ftp2上找了很长时间,发现了WMP071116Pseudo,解开wim后,仔细看了
安装WMP精简版.CMD,发现可以实现对MP10Setup_CN.reg
注册前的编辑,生成tempwmp1.reg  tempwmp2.reg
从而达到在任意位置注册WMP10,不知道我理解的正不正确。
求教高手,对下边的CMD做出解释,小的在此谢谢了!



@echo off   =>(不显示信息)
title WMP精简版安装(Pseudo 07.09.08)     =>(CMD标题)
SET Var0=%0   =>(???)
IF '^%Var0:~0,1%'=='^"' SET Var0=%Var0:~1,-1%   =>(???)
FOR /f "delims=" %%I in ("%Var0%") do Set TP=%%~dpI    =>(???)
SET TP=%TP:~0,-1%    =>(???)
PUSHD %TP%   =>(指定到安装WMP精简版.CMD目录)
setX.exe PATH "%PATH%;%TP%" -m     =>(???)
FOR /F %%i In ('DIR *.DLL /B /A-D /ON') DO REGSVR32 /S %%i
REGSVR32 /S l3codeca.acm
call :注册WMP      =>(运行1)
if not exist PECMD.EXE (
if not exist %SystemRoot%\System32\PECMD.EXE goto :L1
)
PECMD.EXE LINK !%USERPROFILE%\桌面\Windows Media Player,%TP%\wmplayer.exe,/prefetch:1     =>(建立快捷方式)
pecmd.exe mess 安装完成。\n桌面快捷方式已创建。\n3秒后自动关闭本对话框。@完成
:L1
exit   =>(执行完退出)


:注册WMP   =>(--1--)
call :双斜杠 "%TP%"
set DBL_TP=%doubleSlash%
call :getShortName "%TP%"
set S_TP=%shortName%
call :双斜杠 "%S_TP%"
set DBL_S_TP=%doubleSlash%
call :双斜杠 "%UserProfile%"
set DBL_UserProfile=%doubleSlash%
set SrcFile=MP10Setup_CN.reg
if not "%DBL_UserProfile%"=="X:\\Documents and Settings\\Default User" (
strrpc.exe /I  "X:\\Documents and Settings\\Default User" "%DBL_UserProfile%" /S:"%SrcFile%" >"%SystemRoot%\System32\tempwmp1.reg"
set SrcFile=%SystemRoot%\System32\tempwmp1.reg
)
if not "%DBL_S_TP%"=="C:\WMP10L~1" (
strrpc.exe /I  "C:\WMP10L~1" "%DBL_S_TP%"  /S:"%SrcFile%" >"%SystemRoot%\System32\tempwmp2.reg"
set SrcFile=%SystemRoot%\System32\tempwmp2.reg
)
if not "%DBL_TP%"=="C:\\WMP10Lite" (
strrpc.exe /I  "C:\\WMP10Lite" "%DBL_TP%"   /S:"%SrcFile%" >"%SystemRoot%\System32\tempwmp3.reg"
set SrcFile=%SystemRoot%\System32\tempwmp3.reg
)
REGEDIT /S  "%SrcFile%"
del /Q /F "%SystemRoot%\System32\tempwmp*.reg"
goto :eof
:getShortName
set shortName=%~s1
goto :eof

:双斜杠
rem return doubleSlash
for /f "eol=; tokens=1,* delims=\" %%i in ("%~1") do (
set double=%%i
set remain=%%j
)
:repeat
if "%remain%"=="" (
set doubleSlash=%double%
goto :eof
)
for /f "eol=; tokens=1,* delims=\" %%i in ("%remain%") do (
set double=%Double%\\%%i
set remain=%%j
)
goto :repeat




[ 本帖最后由 spycolin 于 2008-3-16 03:34 PM 编辑 ]
2#
发表于 2008-3-16 15:11:05 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

3#
 楼主| 发表于 2008-3-16 15:28:37 | 只看该作者
if not "%DBL_S_TP%"=="C:\WMP10L~1" (
        strrpc.exe /I  "C:\WMP10L~1" "%DBL_S_TP%"  /S:"%SrcFile%" >"%SystemRoot%\System32\tempwmp2.reg"
        set SrcFile=%SystemRoot%\System32\tempwmp2.reg

我最想知道这句话是什么意思。

是不是如果"当前文件夹"不在"C:\WMP10L~1" ,替换MP10Setup_CN.reg内"C:\WMP10L~1"为“当前路径”,并保存为tempwmp2.reg ,设置注册文件为=tempwmp2.reg

还有下面的这些变量都是什么?(我没学过微机,是个电脑盲。)

call :双斜杠 "%TP%"
set DBL_TP=%doubleSlash%
call :getShortName "%TP%"
set S_TP=%shortName%
call :双斜杠 "%S_TP%"
set DBL_S_TP=%doubleSlash%
call :双斜杠 "%UserProfile%"
set DBL_UserProfile=%doubleSlash%

[ 本帖最后由 spycolin 于 2008-3-16 03:38 PM 编辑 ]
回复

使用道具 举报

4#
 楼主| 发表于 2008-3-17 08:53:54 | 只看该作者

如何解决注册表2进制?

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AIFFFile]
@="AIFF Format Sound"
"EditFlags"=hex:00,00,01,00
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\
  00,6f,00,6f,00,74,00,25,00,5c,00,69,00,6e,00,66,00,5c,00,75,00,6e,00,72,00,\
  65,00,67,00,6d,00,70,00,32,00,2e,00,65,00,78,00,65,00,2c,00,2d,00,39,00,39,\
  00,30,00,33,00,00,00
"PreferExecuteOnMismatch"=dword:00000001
回复

使用道具 举报

5#
发表于 2008-3-17 11:14:50 | 只看该作者
原帖由 nn2nn 于 2008-3-16 03:11 PM 发表
SETX.EXE怎么用,看下帮助。
SETX的作用是设置全局变量,还退出当前CMD才生效。


PECMD.EXE 一样有这个功能,不知为何有人加入了 SETX.EXE,
SETX.EXE 这方面的功能并不比 PECMD.EXE 强,一样要退出当前 CMD 才生效。
回复

使用道具 举报

6#
发表于 2008-3-17 11:59:09 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

7#
发表于 2008-3-17 12:40:25 | 只看该作者
原帖由 nn2nn 于 2008-3-17 11:59 AM 发表

曾试过,用PECMD.EXE不行的,用SETX.EXE就可以。
你能用PECMD改写驱动.WIM吗?(最好能用新功能WINCMD里改写,就当作示例)

SETX.EXE也有限制,所以WIMNT加个/CMD /ENV 参数,通过读注册表来改系统变量, ...


执行两条命令,一是设置,二是制新:
PECMD.EXE ENVI $XXXX=SSSS
PECMD.EXE ENVI

或者:
PECMD.EXE TEAM  ENVI $XXXX=SSSS|ENVI

退出 CMD,在下一个CMD进程,新设置的环境变量就生效了,SETX.EXE 也一样,要在下一个CMD进程才生效。

[ 本帖最后由 lxl1638 于 2008-3-17 12:54 PM 编辑 ]
回复

使用道具 举报

8#
发表于 2008-3-17 12:46:16 | 只看该作者
原帖由 nn2nn 于 2008-3-17 11:59 AM 发表

曾试过,用PECMD.EXE不行的,用SETX.EXE就可以。
你能用PECMD改写驱动.WIM吗?(最好能用新功能WINCMD里改写,就当作示例)

SETX.EXE也有限制,所以WIMNT加个/CMD /ENV 参数,通过读注册表来改系统变量, ...


功能是很丰富的,很多工具都难以做到,不旦可以设置环境变量,也可以建立环境变量对应的目录。
┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃    │格式│ENVI [$][名称][[=]值]                                                                       ┃
┃    ├──┼──────────────────────────────────────────────┨
┃    │功能│设置或清除环境变量。                                                                        ┃
┃    ├──┼──────────────────────────────────────────────┨
┃    │参数│■指定环境变量名称和值。前导"$"表示设置系统级环境变量,否则仅设置本程序内部使用的环境变量。 ┃
┃    │    │■如果不指定值,则删除环境变量。                                                            ┃
┃ENVI├──┼──────────────────────────────────────────────┨
┃    │示例│ENVI TEMP=%SystemDrive%\TEMP                                                                ┃
┃    ├──┼──────────────────────────────────────────────┨
┃    │备注│※如果使用"EXEC"执行的程序,会自动继承本程序的环境变量,换句话说,如果在配置文件中设置带"$" ┃
┃    │    │  的环境变量,对后面的"EXEC"程序中也会有效。                                                ┃
┃    │    │※在命令提示符下,可以通过没有参数的ENVI命令刷新环境变量。                                   ┃
┃    │    │※当仅有参数"$"时,则初始化用户文件夹,命令提示符下也可刷新环境变量。                       ┃
┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫

[ 本帖最后由 lxl1638 于 2008-3-17 01:24 PM 编辑 ]

未命名.PNG (29.1 KB, 下载次数: 45)

未命名.PNG
回复

使用道具 举报

9#
发表于 2008-3-17 15:02:18 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

10#
发表于 2008-3-17 15:16:59 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

11#
 楼主| 发表于 2008-3-17 17:06:56 | 只看该作者

老九和nn2nn都来了。

刚好有个新问题,如何设置B盘隐藏(仅不显示,但可以使用)呢?

注册表需要增加哪项?
"Display"="0"  吗?

还是PECMD的“SUBJ”命令?

“SUBJ”命令,会阻碍cmd访问B盘吗?

[HKEY_LOCAL_MACHINE\SETUPREG.HIV\ControlSet001\Services\Ramdriv\Parameters]
"DiskSize"=dword:02000000        磁盘大小,十六进制。
"DriveLetter"="B:"                盘符。
[HKEY_LOCAL_MACHINE\SETUPREG.HIV\ControlSet001\Services\Ramdriv]
"DisplayName"="Ramdisk"                                磁盘名称。
"ImagePath"="system32\\drivers\\ramdriv.sys"        ramdriv.sys的存放路径。
回复

使用道具 举报

12#
发表于 2008-3-17 22:03:58 | 只看该作者
其实这个安装脚本不完善(其实就是替换注册表文件中的路径),使用它后安装后虽然可用启动wmp10,但还需要自己设置文件关联,否则是不能正常使用的
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-2-28 17:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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