Сбой DISM в.bat, но работает нормально из командной строки
Я пытаюсь написать скрипт.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 работать в моем скрипте сборки?