无忧启动论坛

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

[PECMD X86 & X64 V4.0.2011.0501版] WinPE命令解释程序 & WinPE登录命令。

    [复制链接]
2041#
发表于 2009-6-16 11:37:58 | 只看该作者
原帖由 lxl1638 于 2009-6-16 10:41 发表


没有你所说的情况,在本人的系统中正常。
以下是用刚从论坛下载的PECMD.EXE测试结果。

本人也不至于这样笨:


呵呵,老大,我没有说清楚,我是使用的批处理来搞的,不是使用配置文件。如下面的批处理
PECMD.EXE LINK %DESKTOP%\PECMD,PECMD.EXE
无法创建成功,发现是无法识别变量DESKTOP,在配置文件中可以识别。

另外,在批处理中还发现下面的图中第一个(白字的那个)可以执行成功,第二个则无法成功(蓝字的那个),其实两个指向的路径是完全相同的,只是一个使用了变量,一个使用了完整路径,why?难道不识别完整路径?

[ 本帖最后由 HUNRYBECKY 于 2009-6-16 11:39 编辑 ]

Snap2.jpg (43.35 KB, 下载次数: 95)

Snap2.jpg
回复

使用道具 举报

2042#
发表于 2009-6-16 11:42:08 | 只看该作者

回复 #2067 HUNRYBECKY 的帖子

1、又不是批处理,你加个call干吗呢

2、貌似那不是蓝色,应该是绿色吧

[ 本帖最后由 NicTense 于 2009-6-16 11:43 编辑 ]
回复

使用道具 举报

2043#
发表于 2009-6-16 11:49:36 | 只看该作者
原帖由 lxl1638 于 2009-6-16 10:47 发表


是 Windows 7 + Windows 1996,比Windows 7 先进了1996代。



。。。。未来产品。

很是期待,如果老大能出一个国庆60周年的PE经典珍藏精华版的话!
回复

使用道具 举报

2044#
发表于 2009-6-16 11:55:39 | 只看该作者
高手们...我还看不懂..呵呵.
回复

使用道具 举报

2045#
发表于 2009-6-16 12:00:30 | 只看该作者
呵呵,我对颜色分辨不是很好。
是批处理,看界面就知道了哟。加CALL的原因是我的快捷方式是从文件调的,不加CALL无法条用文件中的变量,是保存到一个文本文件中的,见下面的文本内容,因为原来一直使用SHORTCUT命令,效果非常好,但是我想转为PECMD,因为PECMD比较简单,不用自己去建立变量了。
  1. "%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Quick Launch\AUTOCAD2004"+"%CD%\ACAD.EXE"+""+"%CD%"
  2. "%ALLUSERSPROFILE%\%PROGRAM%\AUTOCAD2004"+"%CD%\ACAD.EXE"+""+"%CD%"
复制代码
下面是我的批处理原代码(支持把快捷方式打包和在GTOOLS下建立SHC.LST快捷方式文件两种方式),想兼容PECMD和SHORTCUT两种方式建立快捷方式,目前PECMD条用快捷方式还又问题。
注:由于是批处理中的一段,所以直接执行是不会成功的,代码仅做参考

[code]
REM 为了兼容PECMD,增加了一些变量QuickLaunch,但保留了原来的变量以便兼容SHORTCUT方式创建
SET QL=%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Quick Launch
SET QuickLaunch=%QL%
SET CSF=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
REG EXPORT "%CSF%" "%TEMP%\SCTEMP.TMP"
TYPE "%TEMP%\SCTEMP.TMP"|FIND "=" >"%TEMP%\SCTEMP.TXT"
BS "%TEMP%\SCTEMP.TXT" \\ \
FOR /F "TOKENS=1* DELIMS==" %%I IN ('TYPE "%TEMP%\SCTEMP.TXT"^|FINDSTR /I /C:"Common Desktop"')  DO SET DESKTOP=%%~J
FOR /F "TOKENS=1* DELIMS==" %%I IN ('TYPE "%TEMP%\SCTEMP.TXT"^|FINDSTR /I /C:"Common Programs"')  DO SET PROGRAM=%%~J\[HYSOFT]\%GREENNAME%
SET PROGRAMS=%PROGRAM%
:SCUT
IF NOT EXIST ".\GTOOLS\SCUT.exe" GOTO:NSC
>"%TEMP%\SCUT.TXT"   Echo ;此文件由WINRAR自动生成;不要修改此文件,否则无法在开始菜单中建立快捷方式
>>"%TEMP%\SCUT.TXT"  Echo PATH="%PROGRAM%"
>>"%TEMP%\SCUT.TXT"  Echo Silent=1
>>"%TEMP%\SCUT.TXT"  Echo Overwrite=1
rar c -z"%TEMP%\SCUT.TXT" ".\GTOOLS\SCUT.exe" &&CLS
START /WAIT "" ".\GTOOLS\SCUT.exe"
IF "%SETUPPATH%"=="%CPATH%" GOTO:SCUTQ
ECHO SET OLDPATH=%SETUPPATH%>"%TEMP%\OLDPATH.BAT"&&BS "%TEMP%\OLDPATH.BAT" \\ \ >NUL&CLS
CALL "%TEMP%\OLDPATH.BAT"
DEL /Q/F "%TEMP%\OLDPATH.BAT">NUL
IF NOT EXIST "%PROGRAM%" MD "%PROGRAM%"
FOR /F "DELIMS=" %%I IN ('DIR /B/S "%PROGRAM%\*.LNK"') DO (
     SHC /F:"%%I" /A:Q>"%TEMP%\SCUT.TXT"
     BS "%TEMP%\SCUT.TXT" "%OLDPATH%" "%CD%" /I>NUL&CLS
     BS "%TEMP%\SCUT.TXT" """ "\\"" /I>NUL&CLS
     BS "%TEMP%\SCUT.TXT" "[url=]\\\\[/url]" "\\" /I>NUL&CLS
     setlocal enabledelayedexpansion
     FOR /F "TOKENS=1,* DELIMS==" %%A IN (%TEMP%\SCUT.TXT) DO CALL SET %%A=%%B
     IF DEFINED Arguments IF "!Arguments:~-1!"=="\" (SET Arguments=!Arguments!\)
     IF DEFINED WorkingDirectory IF "!WorkingDirectory:~-1!"=="\" (SET WorkingDirectory=!WorkingDirectory!\) ELSE (SET WorkingDirectory=!WorkingDirectory!\\)
     IF EXIST "!TargetPath!" SHC.EXE /F:"%%I" /A:E /T:"!TargetPath!" /P:"!Arguments!" /W:"!WorkingDirectory!" /I:"!IconLocation!" /D:"HYSOFT">NUL
     endlocal
)
:SCUTQ
COPY /Y "%PROGRAM%\*.LNK"  "%QL%\"
GOTO:COTHER
:NSC
CLS
REM 修正如果SHC.LST含有变量如%ALLUSERSPROFILE%不再需要先替换成真实路径,使用~dpI已经可以获取变量路径(郁闷呀,日文中居然这行注释都通不过,非得把~dpI注释前的双百分号删除);替换WINPE不支持的APPDADA变量
BS "%TEMP%\SHC.LST" "%%PROGRAM%%" "%PROGRAM%" /I>NUL&CLS
BS "%TEMP%\SHC.LST" "%%PROGRAMS%%" "%PROGRAMS%" /I>NUL&CLS
BS "%TEMP%\SHC.LST" "%%DESKTOP%%" "%DESKTOP%" /I>NUL&CLS
BS "%TEMP%\SHC.LST" "%%QL%%" "%QL%" /I>NUL&CLS
BS "%TEMP%\SHC.LST" "%%QuickLaunch%%" "%QuickLaunch%" /I>NUL&CLS
BS "%TEMP%\SHC.LST" "%%CD%%" "%CD%" /I>NUL&CLS
BS "%TEMP%\SHC.LST" "%%WINDIR%%" "%WINDIR%" /I>NUL&CLS
BS "%TEMP%\SHC.LST" "%%USERPROFILE%%" "%USERPROFILE%" /I>NUL&CLS
BS "%TEMP%\SHC.LST" "%%APPDATA%%" "%USERPROFILE%\Application Data" /I>NUL&CLS
BS "%TEMP%\SHC.LST" "%%ALLUSERSPROFILE%%" "%ALLUSERSPROFILE%" /I>NUL&CLS
BS "%TEMP%\SHC.LST" "%%PROGRAMFILES%%" "%PROGRAMFILES%" /I>NUL&CLS
BS "%TEMP%\SHC.LST" "%%COMMONPROGRAMFILES%%" "%PROGRAMFILES%\Common Files" /I>NUL&CLS
CLS
IF NOT EXIST "%PROGRAM%" MD "%PROGRAM%"
IF EXIST "%TEMP%\SHC.LST" (FOR /F "EOL=; TOKENS=1-5 DELIMS=+" %%I IN (%TEMP%\SHC.LST) DO (
   IF NOT EXIST "%%~dpI" MD "%%~dpI"
   IF EXIST %%J CALL SHC.EXE /F:%%I /A:C /D:"HYSOFT" /T:%%J /P:%%K /W:%%L /I:%%M
   IF "%WINDIR:~-2%"=="PE" CALL PECMD LINK %%~I,%%~J,%%~K,%%~M,HYSOFT,%%~L
))

[code]

[ 本帖最后由 HUNRYBECKY 于 2009-6-16 12:03 编辑 ]
回复

使用道具 举报

2046#
发表于 2009-6-16 12:09:00 | 只看该作者
大概看了一下,跟pecmd有关的就这个吧
IF "%WINDIR:~-2%"=="PE" CALL PECMD LINK %%~I,%%~J,%%~K,%%~M,HYSOFT,%%~L

如果那些参数最后的结果跟你之前贴的那个窗口的绿色字体一样的话

应该是可以成功加上连接的,除非路径有误,文件找不到

[ 本帖最后由 NicTense 于 2009-6-16 13:45 编辑 ]
回复

使用道具 举报

2047#
发表于 2009-6-16 12:13:33 | 只看该作者
强中自有强中手 厉害 ~~
回复

使用道具 举报

2048#
 楼主| 发表于 2009-6-16 13:26:23 | 只看该作者
原帖由 HUNRYBECKY 于 2009-6-16 11:37 发表


呵呵,老大,我没有说清楚,我是使用的批处理来搞的,不是使用配置文件。如下面的批处理
PECMD.EXE LINK %DESKTOP%\PECMD,PECMD.EXE
无法创建成功,发现是无法识别变量DESKTOP,在配置文件中可以识别。
...


这个问题与PECMD无关,原因是系统的CMD环境没有变量%DESKTOP%,用CMD.EXE执行
PECMD.EXE LINK %DESKTOP%\PECMD,PECMD.EXE
时,CMD.EXE认为%DESKTOP%是一个没有设置的环境变量(即空值的环境变量),所以传递给PECMD.EXE的命令行参数变成了
PECMD.EXE LINK \PECMD,PECMD.EXE
即用空值代替%DESKTOP%再传递给PECMD.EXE,PECMD.EXE根本没有接受到这个变量,也就无从解释了。

相信你也会写程序,你自己也可写一个简单的程序(任何工具都可以,如VB、VC、Delphi或国产的E语言),就写几行代码就算了,启动后将程序接受的命令行参数显示出来,你在CMD.EXE的窗口中试试:
你的程序.EXE  %DESKTOP%/Test
你会发现"你的程序.EXE"接受到的参数只有"/Test",前面的%DESKTOP%已被换成空值

上面红色的DESKTOP换成其它CMD没有的变量都会出现这种情况,所以要高效使用PECMD.EXE建议在CMD中执行
PECMD.EXE LOAD XXXXXXXXXXXX.INI
在你的XXXXXXXXXXXX.INI中执行一系列PECMD的命令,如多条LINK命令。
因为这种只需启动一次PECMD.EXE即可,比以下在CMD中多次启动PECMD.EXE效率要高得多
PECMD.EXE LINK AAAAAAAAAAAAAAAAAAAAAAA
PECMD.EXE LINK BBBBBBBBBBBBBBBBBBBBBBBBBB
PECMD.EXE LINK CCCCCCCCCCCCCCCCCCCCCCCCCC
PECMD.EXE LINK XXXXXXXXXXXXXXXXXXXXXXXXXX

[ 本帖最后由 lxl1638 于 2009-6-16 13:30 编辑 ]
回复

使用道具 举报

2049#
发表于 2009-6-16 14:01:07 | 只看该作者
原帖由 lxl1638 于 2009-6-16 13:26 发表


这个问题与PECMD无关,原因是系统的CMD环境没有变量%DESKTOP%,用CMD.EXE执行
PECMD.EXE LINK %DESKTOP%\PECMD,PECMD.EXE
时,CMD.EXE认为%DESKTOP%是一个没有设置的环境变量(即空值的环境变量),所以传递 ...


感谢老九兄的回答,恩。看来在批处理中直接使用PECMD是无法直接使用PECMD的环境变量了。按照你的方法,我来测试下直接加载SHC.LST看看是否能成功,由于SHC.LST要和以前的SHORTCUT命令兼容,所以接下来我还要看看怎么搞才能使两个创建快捷方式的命令都有效。
回复

使用道具 举报

2050#
发表于 2009-6-16 14:04:36 | 只看该作者
原帖由 NicTense 于 2009-6-16 12:09 发表
大概看了一下,跟pecmd有关的就这个吧
IF "%WINDIR:~-2%"=="PE" CALL PECMD LINK %%~I,%%~J,%%~K,%%~M,HYSOFT,%%~L

如果那些参数最后的结果跟你之前贴的那个窗口的绿色字体一样的话

应该是可以成功加上连 ...



路径绝对没有问题,原因我还一直在查。有时候觉得很怪,比如使用SHORTCUT命令时发现也有一个缺点,如在WINPE中,如果我把原WINXP的路径追加到PATH环境变量中,发现SHORTCUT命令失效了,所以才想更换成PECMD,但是为了使两个命令都可以使用,如果在PE中自动调用PECMD,所以才想出这么一个办法来。

感谢论坛的各位老大。我先按照老九的方法使用LOAD来加载看下是否可以。
回复

使用道具 举报

2051#
发表于 2009-6-16 14:23:42 | 只看该作者
报告各位老大,终于查处为什么我的2076楼的问题了。还是PATH在作怪。
我在批处理中使用了把实际操作系统的系统路径追加到WINPE的PATH变量中的代码。这里说明下我为什么做的原因,因为经过我测试,很多WINPE中都没有FINDSTR等命令,而在我的批处理中则大量使用了系统内置的命令如MODE FINDSTR PING等,如果把原来的操作系统的路径添加到WINPE的PATH中就可以直接调用。
  1.   for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
  2.      if exist %%a:\windows\system32\KERNEL32.DLL SET PATH=%%a:\windows;%%a:\windows\system32;%PATH%
  3.      if exist %%a:\winnt\system32\KERNEL32.DLL SET PATH=%%a:\winnt;%%a:\winnt\system32;%PATH%
  4.   )
复制代码
我原来的WINPE的PATH=%SystemRoot%;%SystemRoot%\System32;Y:\外置程序\PE_OUTERPART\MMC;Y:\外置程序\Internet Explorer执行后变成PATH=C:\WINIDOWS;C:\WINDOWS\SYSTEM32;%SystemRoot%;%SystemRoot%\System32;Y:\外置程序\PE_OUTERPART\MMC;Y:\外置程序\Internet Explorer
真有点不明白,发现调用原操作系统的内置命令则命令问题,而调用外部创建快捷方式的两个命令PECMD和SHORTCUT都不能成功,而且没有任何错误提示。大家分析下,这是什么原因?

也没有人回答我的问题,我只有把上面的代码修改下,把主要的命令复制到WINPE的系统路径中,调试一切OK,不过有的WINPE比如早期的老毛桃WINPE是不能复制文件到WINPE的系统路径的,这种情况我也没有办法了。

  1.   for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
  2.      if exist %%a:\windows\system32\KERNEL32.DLL FOR %%I IN (findstr.exe find.exe mode.exe riched20.dll) DO copy /y %%a:\windows\system32\%%I %WINDIR%\SYSTEM32\ 1>nul
  3.      if exist %%a:\winnt\system32\KERNEL32.DLL FOR %%I IN (findstr.exe find.exe mode.exe riched20.dll) DO copy /y %%a:\winnt\system32\%%I %WINDIR%\SYSTEM32\ 1>nul
  4.   )
复制代码

[ 本帖最后由 HUNRYBECKY 于 2009-6-16 15:19 编辑 ]
回复

使用道具 举报

2052#
发表于 2009-6-16 16:45:15 | 只看该作者
老九今天怎么不出来?
我还有下面两个问题。请问:
1.配置文件中好象不支持变量%CD%,是怎么回事情,如LINK %QuickLaunch%\PECMD,%CD%\GTOOLS\PECMD.EXE则创建不成功.
2.复杂快捷方式如何创建,如下面的快捷方式,注意有引号的地方必须保留,

  1. D:\CATIA6\B205\intel_a\code\bin\CATSTART.exe  -run "CNEXT.exe" -env CATIA.V6R2009.B205 -direnv "D:\CATIA6\CATEnv" -nowindow
复制代码
回复

使用道具 举报

2053#
 楼主| 发表于 2009-6-16 17:16:53 | 只看该作者
可以肯定,SHORTCUT也不会识别CMD.EXE不能识别的变量,因为CMD.EXE根本没有将CMD.EXE那些没有设置的变量传递给SHORTCUT
回复

使用道具 举报

2054#
 楼主| 发表于 2009-6-16 17:31:11 | 只看该作者
如果要解决这样的问题,PECMD.EXE必需要更新,且:
1、不支持行后注释;
2、所有PECMD.EXE的命令行中不能含有特定的字符,
     这个字符初步打算用"`"(键盘Esc键下面的字符,以前PECMD.EXE是用这个字符作行后注释符的)。

如在CMD.EXE中执行:
PECMD.EXE LINK `DESKTOP`\PECMD,`CurDir`\PECMD.EXE
这样CMD.EXE会将完整的命令行参数传递给PECMD.EXE,
PECMD.EXE将字符"`"替换成"%",即翻译成:
PECMD.EXE LINK %DESKTOP%\PECMD,%CurDir%\PECMD.EXE

但这样的执行效率就会下降了。

[ 本帖最后由 lxl1638 于 2009-6-16 17:37 编辑 ]
回复

使用道具 举报

2055#
发表于 2009-6-16 21:26:33 | 只看该作者
要是老九老大心情好点就搞个定制版的给那些需要,对大多数人来说楼上那位提到的问题是用不上的。不必为了个别而搞得太复杂了。效率低可不是想要的。真的全搞成这样大伙的PECMD.INI都要重新改写。
回复

使用道具 举报

2056#
发表于 2009-6-16 21:49:21 | 只看该作者
同感,批处理的问题可以通过其他方法解决

效率和兼容性才是首要的问题,十分不赞同这样的升级
回复

使用道具 举报

2057#
发表于 2009-6-16 22:56:41 | 只看该作者
原帖由 lxl1638 于 2009-6-16 17:31 发表
如果要解决这样的问题,PECMD.EXE必需要更新,且:
1、不支持行后注释;
2、所有PECMD.EXE的命令行中不能含有特定的字符,
     这个字符初步打算用"`"(键盘Esc键下面的字符,以前PECMD.EXE是用这个字符作行 ...


恩,看来是有点麻烦,好象SHORTCUT遇到特殊字符是使用转义字符来"\"实现的,就如同批处理的转移字符"^"一样,SHORTCUT也不支持一些特殊快捷方式的创建,但是结合其他命令行字符工具是完全可以实现的。我先用我原来的方案来处理快捷方式,等老九兄有了新做后我再更新。我目前使用文件老保存快捷方式,文件中可以使用任何内置变量和我自己加的DESKTOP等变量,然后在批处理中替换成实际路径并使用CALL来调用,还算是比较可行的方法。
回复

使用道具 举报

2058#
 楼主| 发表于 2009-6-17 00:03:47 | 只看该作者
就现在版本的PECMD.EXE,总算找到了解决办法了,
在CMD.EXE批处理中先将百分号设置成一个变量。
以下测试通过:
SET P=%%
PECMD.EXE LINK %P%Desktop%P%\PECMD,PECMD.EXE

上面红色部分被解释成一个%
目前知道的一点不足是PECMD.EXE在没有执行LOAD命令之前,两个变量%CurDir%、%CurDrv%是不存在的,
即在CMD.EXE批处理中还不能解释这两个变量。

[ 本帖最后由 lxl1638 于 2009-6-17 00:25 编辑 ]
回复

使用道具 举报

2059#
发表于 2009-6-17 00:26:26 | 只看该作者

回复 #2084 lxl1638 的帖子

如果是这样,直接

PECMD.EXE LINK %%Desktop%%\PECMD,PECMD.EXE

应该就可以了吧
回复

使用道具 举报

2060#
 楼主| 发表于 2009-6-17 00:29:58 | 只看该作者
原帖由 NicTense 于 2009-6-17 00:26 发表
如果是这样,直接

PECMD.EXE LINK %%Desktop%%\PECMD,PECMD.EXE

应该就可以了吧


是的,实际是批处理"字符转义"问题
回复

使用道具 举报

2061#
发表于 2009-6-17 03:50:02 | 只看该作者

回复 #2086 lxl1638 的帖子

总结出来了
总之,凡是 pecmd 能识别的变量,都把%换成%%就对了,这样就不用管cmd是不是能识别他了
回复

使用道具 举报

2062#
发表于 2009-6-17 17:55:14 | 只看该作者
呵呵,原来是这样,总算明白了,感谢两位大哥
回复

使用道具 举报

2063#
发表于 2009-6-18 13:47:02 | 只看该作者
forx命令迷惑中,忘老九老大指教:


文件结构是:
minipe--|
           |----basic|---BASIC.WIM
           |           |--ERD2005.WIM
           |           |--GHOST.WIM
           |           |--OPERA.WIM
           |
           |
           |
           |----system|---DIRECTX9.WIM
           |              |--MMC.WIM
           |              |--SOUND.WIM
           |              |--SYSTEM.WIM
           |            
           |            
           |-------winpe.ini         


winpe.ini如下:

TEAM ENVI SOFT=%Curdrv%\MINIPE|ENVI AA=%SOFT%\baisc|ENVI SS=%SOFT%\system|ENVI PF=Pagefile.sys
FORX %SS%\*.WIM,swim,0,TEAM NAME wimname1=%swim%|MOUN %swim%,%SystemRoot%\%wimname1%\,1
FORX %AA%\*.WIM,bwim,0,TEAM NAME wimname=%bwim%|MOUN %bwim%,x:\Program Files\%wimname%\,1


现在的问题是,可以挂载上wim,目录名虽正确,但里边不是对应wim包中的文件,如:mmc目录下的文件其实是sound的文件。全乱了,不知道是什么原因?
回复

使用道具 举报

2064#
 楼主| 发表于 2009-6-18 17:29:55 | 只看该作者
原帖由 mapeimapei 于 2009-6-18 13:47 发表
forx命令迷惑中,忘老九老大指教:


文件结构是:
minipe--|
           |----basic|---BASIC.WIM
           |           |--ERD2005.WIM
           |           |--GHOST.WIM
           |         ...



不知什么原因,你这样试试,真正的原因要本人有空才去处理。

_SUB MountWimFile
        NAME wimname=%swim%
        MOUN %swim%,%MountPath%\%wimname%,1
_END

TEAM ENVI SOFT=%Curdrv%\MINIPE|ENVI AA=%SOFT%\baisc|ENVI SS=%SOFT%\system|ENVI PF=Pagefile.sys
ENVI  MountPath=%SystemRoot%
FORX %SS%\*.WIM,swim,0,CALL MountWimFile

ENVI  MountPath=x:\Program Files
FORX %AA%\*.WIM,swim,0,CALL MountWimFile
回复

使用道具 举报

2065#
发表于 2009-6-18 20:29:15 | 只看该作者
RTM快出来了。。。。不知WimTool有没有可更新的了
回复

使用道具 举报

2066#
发表于 2009-6-18 21:51:08 | 只看该作者
原帖由 lxl1638 于 2009-6-18 17:29 发表



不知什么原因,你这样试试,真正的原因要本人有空才去处理。


老大给的方案一个也挂载不上,希望老大尽快发现forx的错误地方,尽快解决。。
回复

使用道具 举报

2067#
 楼主| 发表于 2009-6-19 01:01:49 | 只看该作者
原帖由 mapeimapei 于 2009-6-18 21:51 发表


老大给的方案一个也挂载不上,希望老大尽快发现forx的错误地方,尽快解决。。


本人在自已的机子中试验通过了,可以正确挂上。
你先注掉一个目录中的WIM再试,也要确保目标目录%MountPath%\%wimname%是空的。
MOUN命令会自己建立目标目录。

SUB MountWimFile
        NAME wimname=%swim%

        MOUN %swim%,%MountPath%\%wimname%,1
_END

TEAM ENVI SOFT=%Curdrv%\MINIPE|ENVI AA=%SOFT%\baisc|ENVI SS=%SOFT%\system|ENVI PF=Pagefile.sys
ENVI  MountPath=%SystemRoot%
FORX %SS%\*.WIM,swim,0,CALL MountWimFile

//ENVI  MountPath=x:\Program Files
//FORX %AA%\*.WIM,swim,0,CALL MountWimFile


[ 本帖最后由 lxl1638 于 2009-6-19 01:05 编辑 ]
回复

使用道具 举报

2068#
发表于 2009-6-19 14:54:08 | 只看该作者
老九老大,请教个问题
pecmd的link 图标编号是不是只能用#1 这样的格式,不能用-100这样的

后者是按资源编号提取图标,这样的好处是不管这个文件其他图标是否被删,或者添加了其他图标,都不受影响

而#1这样的形式,中间如果添加或者删除了其他图标,就会导致错乱

我提出这个问题,主要是因为 shell32.dll 不同版本的图标个数不一样,但是同一个编号对应的是用在同样地方的

所以如果要兼容xp、2003,或者其他版本的windows,只能用资源编号

对了,你用的系统是2003,能不能用wimtool帮我看看你系统里面的shell32.dll的#220是什么图标

ie还是一个类似于历史文档的图标?

[ 本帖最后由 NicTense 于 2009-6-19 15:35 编辑 ]
回复

使用道具 举报

2069#
 楼主| 发表于 2009-6-27 18:59:54 | 只看该作者
V3.5.628.296版更新
1、完善了 WALL 命令的功能,WALL 命令可以在启动后的PE和正常系统中设置桌面背景;
2、完善了对 NT6.x 系列 WinPE2.x 及 WinPE3.x 的支持,PECMD.EXE 可以代替WinPEShl.EXE和PEShell.EXE;
3、补充和完善了 FIND、HKEY、HOTK、IFEX 和 SEND 命令的功能,这5条命令的简单按键('A'~'Z'、'0'~'9')
     可以直接用按键字母表示,也保留对虚拟按键代码的支持;
4、修正了版主 neo4026 提到变量套变量的解释问题。
特别说明

QUOTE:

    其中第3点更新是为了使某些情况下无需使用虚拟按键代码,而直接使用按键字母。
这点更新可以令到一些老手不适应,因无需使用虚拟按键代码,新手会更好理解、上路会更快。
更新INI代码方法在虚拟按键代码数值前加前导'#',或属于简单按键('A'~'Z'、'0'~'9')的直接
用按键字母表示,示例如下:
FIND KEY=0x11,命令... 改为 FIND KEY=#0x11,命令...
IFEX KEY=0x12,命令... 改为 IFEX KEY=#0x11,命令...
HKEY Ctrl+Alt+0x41,DISP W800H600B16F75 改为 HKEY Ctrl+Alt+#0x41,DISP W800H600B16F75
                                     改为 HKEY Ctrl+Alt+A,DISP W800H600B16F75
HOTK Ctrl+Alt+0x41,DISP W800H600B16F75 改为 HOTK Ctrl+Alt+#0x41,DISP W800H600B16F75
                                     改为 HOTK Ctrl+Alt+A,DISP W800H600B16F75
SEND 0x12_,0x09_,0x09^,0x12^ 改为 SEND #0x12_,#0x09_,#0x09^,#0x12^

回复

使用道具 举报

2070#
发表于 2009-6-27 19:01:50 | 只看该作者
又有更新,支持老大。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-1 10:00

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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