WinPE, Startnet.CMD e passando as variáveis para o segundo arquivo de lote não está funcionando

0

Não sei scripts nem PowerShell (sim, preciso aprender alguma coisa). Eu também não sou um especialista em criação de arquivos em lote.

Eu tenho uma unidade flash do WinPE que usei para implantar imagens do sistema operacional. Eu tenho o WIM, drivers e qualquer coisa necessária fora do ambiente WinPE para garantir que Atualizações, mudanças são mais fáceis para mim.

Eu uso o arquivo em lote "STARTNET.CMD" que faz parte do WinPE.

O motivo para passar pelas unidades de letras é que o WinPE sempre obtém a unidade de letra X atribuída. O pen drive pode receber uma letra aleatória que sempre muda.

Meu menu de implantação está localizado na própria unidade flash e não dentro do WinPE. Isso é para que, se eu precisar fazer uma alteração, não precise refazer o WinPE.

Eu posso localizar o arquivo em lote "menu.bat" e iniciá-lo. Eu uso uma variável para capturar a letra. Eu chamo o segundo arquivo de lote chamado "menu.bat" e passo a variável para ele.

Quando o segundo arquivo de lote é carregado, acredito que estou chamando a variável corretamente. Se eu sair do arquivo em lote, posso fazer o eco da variável e ver a resposta esperada. O problema é que não posso usar a variável para trabalhar com qualquer coisa no segundo arquivo de lote. No meu teste, posso fazer isso funcionar repetidamente. Quando é executado a partir da unidade flash USB real, não funciona. Removi os comentários do segundo arquivo de lote para torná-lo menor.

Meu problema é que os arquivos abaixo recebem uma mensagem informando que o sistema não pode encontrar o caminho especificado.

Diskpart
Imagex.exe
bcdboot.exe

Por que não consigo configurar corretamente a variante quando tento usar o exemplo "ImageX.exe"?

Conteúdo do Startnet.cmd

@echo off
for %%p in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do if exist %%p:\Tools\ set w=%%p
Set execpatch=%w%\Tools\
call %w%:\Menu.bat \Tools\

Conteúdo do Menu.BAT

@echo off
set SecondPath=%1
cls
:Start
cls
Echo.
Echo.==============================================================
Echo. Windows 7 64 Bit Ent Basic Desktops
Echo.==============================================================
Echo.
Echo A. 790 Windows 7 - Basic
Echo.
Echo.
Echo I. Exit
Echo.
Echo.

set /p choice=Choose your option = 

if not '%choice%'=='' set choice=%choice:~0,1%

if '%choice%'=='a' goto 790_Windows_7_Basic

echo "%choice%" is not a valid (answer/command)
echo.

goto start
:790_Windows_7_Basic

REM DISKPART /s %SecondPath%BatchFiles\Make-Partition.txt

%SecondPath%imagex.exe /apply %SecondPath%Images\Win7-64b-Ent-Basic-SysPreped.wim 1 o:\ /verify

%SecondPath%bcdboot.exe o:\Windows /s S:

Copy %SecondPath%Unattended\unattend.XML o:\Windows\System32\sysprep\unattend.XML /y

xcopy %SecondPath%Drivers0\*.* o:\Windows\INF0\ /E /Q /Y

MD o:\Windows\Setup\Scripts\
Copy %SecondPath%BatchFiles\SetupComplete.cmd o:\Windows\Setup\Scripts\ /y

Goto Done

:Done
Exit
    
por LunchBox 18.06.2012 / 19:14

3 respostas

0

Pelo que parece, a última linha no seu arquivo startnet.cmd deve ser

call %w%:\Menu.bat %w%:\Tools\

desde que menu.bat aparentemente espera que o primeiro argumento seja o caminho completo para o diretório Tools, incluindo a letra da unidade.

Observe que startnet.cmd define uma variável de ambiente chamada w , que menu.bat poderia usar (mas atualmente não usa!), portanto, outra solução seria substituir todas as instâncias de %SecondPath% por %w%:%SecondPath% . / p>     

por 19.06.2012 / 04:03
0

O uso da ajuda do Setx? Ele modifica o ambiente do ambiente do usuário ou do sistema. Veja Setx /? para mais

    
por 18.06.2012 / 19:42
0

Você deve verificar o arquivo "\ sources \ boot.wim", abrir este arquivo e então verificar se os arquivos "\ tools \ imagex.exe e bcdboot.exe" possuem o diretório correto em boot.wim.

    
por 19.06.2012 / 03:28