次のような .bat スクリプトを作成しようとしています。
- WinPE イメージを作成します。
- イメージをマウントします。
- 画像に変更を加えさせてください。
- 変更をコミットします。と
- .iso イメージを作成します。
私のスクリプトはこれです:
set /p proj_name=What is project name:
set /p proj_arch=What is the architecture (86 or 64):
REM Build Image
IF %proj_arch% EQU 64 (
echo Building x64 in C:\winPE\builds\%proj_name%
start cmd /C copype amd64 C:\winPE\builds\%proj_name%
) else if %proj_arch% EQU 86 (
echo Building x86 in C:\winPE\builds\%proj_name%
start cmd /C copype x86 C:\winPE\builds\%proj_name%
)
REM Mount image
echo mounted directoy at c:\winpe\mount
DISM /Mount-Wim /WimFile:"C:\winPE\builds\%proj_name%\media\sources\boot.wim" /index:1 /MountDir:"C:\winPE\mount"
Echo =============================================
echo To unmount and create ISO:
pause
Dism /Unmount-Wim /MountDir:"C:\WinPE\mount" /commit
Dism /Cleanup-Mountpoints
echo Creating iso in c:\winpe\
MakeWinPEMedia /ISO C:\winPE\builds\%proj_name% C:\WinPE_amd64\%proj_name%.iso
pause
私の問題はDISM /mount-wim
、このバッチで失敗した場合 (に変更%proj_name%
してもtest
) ですが、スクリプトを実行した後、同じコマンド プロンプトで正常に動作します。例えば:
test.bat
start cmd /C copype amd64 C:\winPE\builds\test
DISM /Mount-Wim /WimFile:"C:\winPE\builds\test\media\sources\boot.wim" /index:1 /MountDir:"C:\winPE\mount"
c:\winpe> cmd test.bat
で失敗しますがwim not found
、:
test2.bat
start cmd /C copype amd64 C:\winPE\builds\test
c:\winpe> cmd test2.bat
c:\winpe> DISM /Mount-Wim /WimFile:"C:\winPE\builds\test\media\sources\boot.wim" /index:1 /MountDir:"C:\winPE\mount"
成功しています。
ビルド スクリプトで DISM を動作させるにはどうすればよいですか?