Как запустить copype.cmd для WinPE из командного файла

2247
Mark Deven

Я пишу инструмент, который настраивает диск WinPE для вас, и я вызываю команды DISM из командного файла администратора. Однако я не могу понять, как запустить команду copype для первоначальной настройки диска.

"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\copype.cmd"это то место, где расположен инструмент copype, но при вызове его с помощью dism с помощью этой команды: Dism "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\copype.cmd" amd64 C:\WinPE_amd64он отвечает, что Dism doesn't recognise the command-line option "copype.cmd"если я пытаюсь запустить файл напрямую из командной строки, он говорит, что не может найти инфраструктуру amd64. Единственный способ запустить его - это запустить среду средств администрирования и развертывания администратора и запустить команду copype. Должен быть способ сделать это, но я не могу понять, как это сделать.

0

2 ответа на вопрос

0
Mark Deven

Оказывается, Windows ADK Copype был немного сломан начиная с Windows 8. В нем отсутствует какая-то переменная. Если вы поместите это в свой пакетный файл, вы можете использовать call :copypeдля вызова команд к нему:

:copype setlocal  set TEMPL=media set FWFILES=fwfiles  rem rem Input validation rem if /i "%1"=="/?" goto usage if /i "%1"=="" goto usage if /i "%~2"=="" goto usage if /i not "%3"=="" goto usage  rem rem Set environment variables for use in the script rem set WINPE_ARCH=%1 set SOURCE=C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\%WINPE_ARCH% set FWFILESROOT=C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\%WINPE_ARCH%\Oscdimg set DEST=%~2 set WIMSOURCEPATH=%SOURCE%\en-us\winpe.wim  rem rem Validate input architecture rem rem If the source directory as per input architecture does not exist, rem it means the architecture is not present rem if not exist "%SOURCE%" ( echo ERROR: The following processor architecture was not found: %WINPE_ARCH%. exit /b 1 )  rem rem Validate the boot app directory location rem rem If the input architecture is validated, this directory must exist rem This check is only to be extra careful rem if not exist "%FWFILESROOT%" ( echo ERROR: The following path for firmware files was not found: "%FWFILESROOT%". exit /b 1 )  rem rem Make sure the appropriate winpe.wim is present rem if not exist "%WIMSOURCEPATH%" ( echo ERROR: WinPE WIM file does not exist: "%WIMSOURCEPATH%". exit /b 1 )  rem rem Make sure the destination directory does not exist rem if exist "%DEST%" ( echo ERROR: Destination directory exists: %2. exit /b 1 )  mkdir "%DEST%" if errorlevel 1 ( echo ERROR: Unable to create destination: %2. exit /b 1 )  echo. echo =================================================== echo Creating Windows PE customization working directory echo. echo %DEST% echo =================================================== echo.  mkdir "%DEST%\%TEMPL%" if errorlevel 1 goto :FAIL mkdir "%DEST%\mount" if errorlevel 1 goto :FAIL mkdir "%DEST%\%FWFILES%" if errorlevel 1 goto :FAIL  rem rem Copy the boot files and WinPE WIM to the destination location rem xcopy /cherky "%SOURCE%\Media" "%DEST%\%TEMPL%\" if errorlevel 1 goto :FAIL mkdir "%DEST%\%TEMPL%\sources" if errorlevel 1 goto :FAIL copy "%WIMSOURCEPATH%" "%DEST%\%TEMPL%\sources\boot.wim" if errorlevel 1 goto :FAIL  rem rem Copy the boot apps to enable ISO boot rem rem UEFI boot uses efisys.bin rem BIOS boot uses etfsboot.com rem copy "%FWFILESROOT%\efisys.bin" "%DEST%\%FWFILES%" if errorlevel 1 goto :FAIL if exist "%FWFILESROOT%\etfsboot.com" ( copy "%FWFILESROOT%\etfsboot.com" "%DEST%\%FWFILES%" if errorlevel 1 goto :FAIL )  endlocal echo. echo Success echo.  cd /d "%~2"  goto :EOF  :usage echo Creates working directories for WinPE image customization and media creation. echo. echo copype { amd64 ^| x86 ^| arm } ^<workingDirectory^> echo. echo amd64 Copies amd64 boot files and WIM to ^<workingDirectory^>\media. echo x86 Copies x86 boot files and WIM to ^<workingDirectory^>\media. echo arm Copies arm boot files and WIM to ^<workingDirectory^>\media. echo Note: ARM content may not be present in this ADK. echo workingDirectory Creates the working directory at the specified location. echo. echo Example: copype amd64 C:\WinPE_amd64 goto :EOF  :FAIL echo ERROR: Failed to create working directory. set EROP=YEs exit /b 1 Rem CopyPE created by Microsoft and Edited by Lucas Elliott and wjsorensen on technet ::------------------------ END -------------------------- 

Для тех, кто использует Windows 8, вы можете увидеть их решение здесь: https://social.technet.microsoft.com/Forums/ie/en-US/1155d38c-e7fd-4b4f-a31c-26875d4f47a7/windows-pe-error-using -windows-8-ADK? форум = w8itproinstall

0
Enrico

Гм, я зашел сюда в поисках информации о copype и перешел по ссылке на форум technet. Есть новое сообщение от нескольких дней назад - я настоятельно рекомендую прочитать его. Короче говоря, copype вообще не нарушается: он просто предназначен для запуска из среды ADK (приглашение cmd вызывается нажатием соответствующей ссылки в Пуск -> Все программы -> Комплекты Windows -> Windows ADK). (О, хорошо, это путь на Win 7: я установил Windows 8 ADK (версия 6.3.9600.17029) на Windows 7; в Win 8 и, вероятно, также в Win 10, путь будет несколько отличаться из-за разной компоновки меню Пуск.)

Да на Windows 10 все по-другому. Mark Deven 5 лет назад 0