Сбой DISM в.bat, но работает нормально из командной строки

Я пытаюсь написать скрипт.bat, который будет:

  1. создать образ WinPE;
  2. смонтировать образ;
  3. позвольте мне внести изменения в изображение;
  4. зафиксировать изменения; а также
  5. создать образ.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 работать в моем скрипте сборки?

0 ответов

Другие вопросы по тегам