无忧启动论坛

标题: PECMD MOUN如何自動建立目錄 [打印本页]

作者: saiz    时间: 2018-5-3 19:04
标题: PECMD MOUN如何自動建立目錄
在PECMD的說明中 MOUN底下有此說明
※Mount目標目錄自動創建,加載只讀文件自動轉為只讀方式。
但我實在是看不出指令要如何KEY orz
有先進可以教一下嗎?
想把批次檔去掉 都用PECMD跑
作者: 红毛樱木    时间: 2018-5-3 20:03
具体要干什么?猜不到
作者: ge    时间: 2018-5-3 21:20
我都是用MDIR创建的目录
作者: ge    时间: 2018-5-3 21:22
没有用过!以前用过!当时IMDISK还不能挂载WIM呢!
作者: saiz    时间: 2018-5-3 22:48
红毛樱木 发表于 2018-5-3 20:03
具体要干什么?猜不到

我還是延用NONAME XPE的WIM方法
個別或少數部程式分一個WIM 方便個別更新
然後跑個CMD 建立目錄及掛載WIM
我想看能不能把建立目錄的部份也一併用PECMD做
MOUN及LOAD .ini部份 用FORX去跑即可
但目錄名要如何用變量去建立相對應名稱我就不知道了...
  FOR /F "delims=" %%i IN ('dir /b/s WIMMOD\*.wim') Do (
      MD "y:\%%~ni"
      PECMD MOUN %%i,Y:\%%~ni,1,%TEMP%
    )
  FOR /F "delims=" %%i IN ('dir /b/s WIMMOD_x64\*.wim') Do (
      MD "y:\%%~ni"
      PECMD MOUN %%i,Y:\%%~ni,1,%TEMP%
    )

echo. >> %windir%\outtool.ini
FOR /F "delims=" %%i IN ('dir /b /s y:\outtool.ini') Do echo LOAD "%%i" >> %windir%\outtool.ini
echo. >> %windir%\outtool.ini

作者: 红毛樱木    时间: 2018-5-3 22:54
saiz 发表于 2018-5-3 22:48
我還是延用NONAME XPE的WIM方法
個別或少數部程式分一個WIM 方便個別更新
然後跑個CMD 建立目錄及掛載W ...

CMD和BAT我是真看不懂的。你直接说要干什么事。
作者: saiz    时间: 2018-5-3 23:06
红毛樱木 发表于 2018-5-3 22:54
CMD和BAT我是真看不懂的。你直接说要干什么事。

我把WIM都放在三個目錄下
我想要自動找這3個目錄下的WIM檔
建立Y:\目錄 好掛載WIM
EX:AIDA64.WIM  ==>建立 Y:\AIDA64\ 再MOUN AIDA.WIM,y:\AIDA\
作者: 红毛樱木    时间: 2018-5-3 23:28
saiz 发表于 2018-5-3 23:06
我把WIM都放在三個目錄下
我想要自動找這3個目錄下的WIM檔
建立Y:\目錄 好掛載WIM
  1. //设定查找目录
  2. ENVI &FindPath=D:
  3. FORX %&FindPath%\*.WIM,&AnyWIM,0,
  4. {
  5.     //获取WIM文件的文件名
  6.     FNAM &fNamWIM=%&AnyWIM%
  7.     ENVI &MountPath=Y:\%&fNamWIM%   //视不同情况,如果下面的MOUN失败就试试把这句换成ENVI &MountPath=Y:\%&fNamWIM%\%&fNamWIM%
  8.     MDIR %&MountPath%
  9.     MOUN %&AnyWIM%,%&MountPath%
  10. }
复制代码



如果搜索的是每个盘符的根目录的话,这样子
  1. //设定查找目录
  2. ENVI &FindPath=ABC\BCD
  3. FORX \%&FindPath%\*.WIM,&AnyWIM,0,
  4. {
  5.     //获取WIM文件的文件名
  6.     FNAM &fNamWIM=%&AnyWIM%
  7.     ENVI &MountPath=Y:\%&fNamWIM%   //视不同情况,如果下面的MOUN失败就试试把这句换成ENVI &MountPath=Y:\%&fNamWIM%\%&fNamWIM%
  8.     MDIR %&MountPath%
  9.     MOUN %&AnyWIM%,%&MountPath%
  10. }
复制代码

作者: saiz    时间: 2018-5-4 15:14
红毛樱木 发表于 2018-5-3 23:28
如果搜索的是每个盘符的根目录的话,这样子

感謝紅毛大大
但我使用結果 無效
掛載目錄也沒有建立
有些問題想請教
FORX \%&FindPath%\*.WIM,&AnyWIM,0,
ANYWIM變數應該會是完整路徑吧?
EX: U:\OUTTOOL\ABC.WIM
但後面又有Y:\%&fNamWIM%,
而因為%&fNamWIM%=%&AnyWIM%
那Mountpath不就會=Y:\OUTTOOL\ABC.WIM
也許這就是不成功的因

但我只想要取出ABC做目錄名稱 以建立新目錄
那我要如何做呢?

作者: 红毛樱木    时间: 2018-5-4 16:10
saiz 发表于 2018-5-4 15:14
感謝紅毛大大
但我使用結果 無效
掛載目錄也沒有建立

FNAM &fNamWIM=%&AnyWIM%
作者: saiz    时间: 2018-5-6 17:34
红毛樱木 发表于 2018-5-4 16:10
FNAM &fNamWIM=%&AnyWIM%

感謝提供!!
這樣我的思路就有方法可行了
繼續研究!
作者: saiz    时间: 2018-5-6 19:29
感謝紅毛大大 我已經寫好 測試OK了
但又發現新問題...
我是XPE WIN8PE WIN10PE
呼叫同一個xWIM.INI 執行載入WIM ,LOAD INI
但在XPE WIN10PE底下都OK,在WIN8PE底下就不行了
明明呼叫的檔案是同一個 WIN10PE跟WIN8PE使用的PECMD也是同一版本
但在WIN8PE底下無法MOUN,
請問這可能會是什麼原因呢?
附上我的xWIM.INI內容如下

  1.      ENVI OUTTOOL=%CURDIR%
  2.      PATH @%OUTTOOL%
  3.      ENVI xWIM=%OUTTOOL%
  4.      ENVI MountPath=Y:
  5.      RAMD ImDisk,L100,NTFS,Y:

  6.      TEXT 載入WIM檔中...請耐心等候
  7.      IFEX MEMU>=1000,CALL Copy2RAM
  8.      WAIT 666
  9.      FORX /S %xWIM%\*.wim,Wim,0,TEAM NAME WimDir=%Wim%|MDIR %MountPath%\%WimDir%|MOUN "%Wim%","%MountPath%\%WimDir%",1,%MountPath%\
  10.      IFEX X:\RXPE,TEAM FBWF L300 H400|LOAD %MountPath%\PESYSTEM\PESYSTEM.INI
  11.      TEXT 執行軟體基本設置...請耐心等候
  12.      FORX /S %MountPath%\outtool.ini,WimInI,0,LOAD "%WimInI%"


  13. _SUB Copy2RAM
  14.      RAMD ImDisk,L600 H1024,NTFS,Y:  
  15.      MDIR Y:\xWIM
  16.      ENVI xWIM=Y:\xWIM

  17.      FILE -simpleprogress %OUTTOOL%\WIMMOD=>%xWIM%\
  18.      IFEX x:\RXPE,FILE -simpleprogress %OUTTOOL%\WIMMOD_XPE=>%xWIM%\!FILE -simpleprogress %OUTTOOL%\WIMMOD_X64=>%xWIM%\
  19. _END
复制代码

作者: saiz    时间: 2018-5-7 18:20
更新
發現因為8PE使用VDISK建立Y:(原本我刪除相關指令了)
如果使用原8PE 是可以加載WIM 但不能把WIM檔丟到Y:\ 再MOUNT
也就是一定要用隨身碟才可以 無法移除隨身碟
請問有什麼方法可以移除VDISK 改用IMDISK嗎
我原本使用IMDISK建立Y槽是OK的
也能建立目錄 就是不能MOUNT
作者: saiz    时间: 2018-5-8 11:24
發現LOG中 MOUN指令出現drivers=0x190001c wim dll ver7=0
看來是問題所在
有哪位大大可以幫我解釋這問題嗎??
作者: saiz    时间: 2018-5-8 12:43
更新PECMD.EXE後,WIN8PE沒有樓上的問題
目前找到問題點是 WIN8PE如果以
MOUN A.WIM,Y:\A,1
結果會掛載在Y:\ 而不是Y:\A\
應該是因為如此而造成無法掛載
但明明PECMD我已換成跟WIN10PE一樣了
WIMMOUNT.SYS之類我看是跟XPE一樣 6.0版
為什麼XPE WIN10PE都OK WIN8PE卻不OK呢?
是不是我有什麼檔案需要更新呢?
作者: saiz    时间: 2018-5-8 14:44
closed....解決了
該PE要再加載DISM相關檔案才行
作者: 红毛樱木    时间: 2018-5-8 15:41
saiz 发表于 2018-5-8 14:44
closed....解決了
該PE要再加載DISM相關檔案才行

ENVI &MountPath=Y:\%&fNamWIM%   //视不同情况,如果下面的MOUN失败就试试把这句换成ENVI &MountPath=Y:\%&fNamWIM%\%&fNamWIM%
作者: saiz    时间: 2018-5-8 19:29
感謝紅毛大
我已經完成並測試OK了
如下:

  1.      //流程架構為:建立RAMDISK=>如果RAM夠大則擴充RAMDISK以便複製WIM到Y:再做掛載 ==>完成後 隨身碟可移除
  2.      //                      L>RAM不夠大則RAMDISK只做掛載使用,不複製WIM        ==>完成後 隨身碟不可移除
  3.      
  4.      SET OUTTOOL=%CURDIR% //目前目錄
  5.      PATH @%OUTTOOL%
  6.      SET xWIM=%OUTTOOL% //掛載WIM-來源
  7.      SET MountPath=Y:   //掛載WIM-目的
  8.      IFEX X:\RXPE,RAMD ImDisk,L100,NTFS,Y:   //XPE建立RAMDISK Y:

  9.      TEXT 載入WIM檔中...請耐心等候   
  10.      IFEX MEMU>=1200,CALL Copy2RAM //如果可用RAM足夠的話 將WIM複製到RAMDISK Y:中再掛載(可移除隨身碟)
  11.      WAIT 1000
  12.      CALL mount
  13.      WAIT 666
  14.      IFEX X:\RXPE,TEAM FBWF L300 H400|LOAD %MountPath%\PESYSTEM\PESYSTEM.INI
  15.      TEXT 執行軟體基本設置...請耐心等候
  16.      FORX /S %MountPath%\outtool.ini,WimInI,0,LOAD "%WimInI%" //搜尋INI檔並執行


  17. _SUB Copy2RAM
  18.      IFEX X:\RXPE,RAMD ImDisk,L600 H1024,,Y: //RAM夠大 擴充RAMDISK
  19.      //先刪除後重建目錄,以免手動重載時出問題
  20.      IFEX Y:\xWIM,FILE Y:\xWIM
  21.      MDIR Y:\xWIM
  22.      SET xWIM=Y:\xWIM //改變WIM掛載點為RAMDISK Y:

  23.      FILE -simpleprogress %OUTTOOL%\WIMMOD=>%xWIM%\ //複製相同WIM到RAMDISK Y:
  24.      IFEX x:\RXPE,FILE -simpleprogress %OUTTOOL%\WIMXPE=>%xWIM%\!FILE -simpleprogress %OUTTOOL%\WIMX64=>%xWIM%\ //依PE不同,複製相異WIM到RAMDISK Y:
  25. _END

  26. _SUB mount
  27.      IFEX X:\RXPE,SET x86x64=%xWIM%\WIMXPE!SET x86x64=%xWIM%\WIMX64 //依據PE不同 掛載相異部份WIM

  28.      //先獲取所有WIM路徑,取出檔名建立掛載用目錄,再把所有WIM掛載到對應目錄下
  29.      FORX %x86x64%\*.wim,Wim,0,TEAM NAME WimDir=%Wim%|MDIR %MountPath%\%WimDir%|MOUN "%Wim%","%MountPath%\%WimDir%",1,%MountPath%\ //相異WIM
  30.      FORX %xWIM%\WIMMOD\*.wim,Wim,0,TEAM NAME WimDir=%Wim%|MDIR %MountPath%\%WimDir%|MOUN "%Wim%","%MountPath%\%WimDir%",1,%MountPath%\ //相同WIM
  31. _END
复制代码

作者: 红毛樱木    时间: 2018-5-9 17:50
saiz 发表于 2018-5-8 19:29
感謝紅毛大
我已經完成並測試OK了
如下:

可以用SIZE和CALC命令动态算出WIM大小,动态设置IMDISK盘大小。
作者: saiz    时间: 2018-5-9 19:36
红毛樱木 发表于 2018-5-9 17:50
可以用SIZE和CALC命令动态算出WIM大小,动态设置IMDISK盘大小。

喔喔~還有這功指令啊 再研究研究
但一定要設大點 免得爆掉吧
因為有的程式會有暫存檔之類出現




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3