WinPE, Startnet.CMD und Übergabe von Variablen an zweite Batchdatei funktioniert nicht

9916
LunchBox

Ich kenne kein Scripting oder PowerShell (ja, ich muss etwas lernen). Ich bin auch kein Batch-File-Experte.

Ich habe ein WinPE-Flashlaufwerk, mit dem ich Betriebssystemabbilder bereitgestellt habe. Ich habe das WIM, die Treiber und alles, was sonst außerhalb der WinPE-Umgebung benötigt wird, um sicherzustellen, dass Updates und Änderungen einfacher für mich sind.

Ich verwende die Batch-Datei "STARTNET.CMD", die Teil der WinPE ist.

Der Grund für das Durchlaufen der Brieflaufwerke ist, dass der WinPE immer das X-Brieflaufwerk zugewiesen wird. Das Flash-Laufwerk selbst kann einen zufälligen Buchstaben erhalten, der sich immer ändert.

Mein Bereitstellungsmenü befindet sich auf dem Flash-Laufwerk selbst und nicht in der WinPE. Dies ist so, dass ich, wenn ich eine Änderung vornehmen muss, die WinPE nicht erneut durchführen muss.

Ich kann die Batchdatei "menu.bat" lokalisieren und starten. Ich verwende eine Variable, um das Brieflaufwerk zu erfassen. Ich rufe die zweite Batchdatei mit dem Namen "menu.bat" auf und übergebe die Variable.

Wenn die zweite Batchdatei geladen wird, glaube ich, dass ich die Variable korrekt aufrufe. Wenn ich aus der Batchdatei ausbreche, kann ich die Variable wiederholen und die erwartete Antwort sehen. Das Problem ist, dass ich die Variable nicht verwenden kann, um mit der zweiten Batchdatei zu arbeiten. In meinem Test kann ich das immer wieder zum Laufen bringen. Wenn es vom echten USB-Flashlaufwerk ausgeführt wird, funktioniert es nicht. Ich habe Kommentare aus der zweiten Batchdatei entfernt, um sie zu verkleinern.

Mein Problem ist, dass Dateien unter allen eine Meldung erhalten, die besagt, dass das System den angegebenen Pfad nicht finden kann.

Diskpart Imagex.exe bcdboot.exe 

Warum kann ich die Variable nicht richtig funktionieren lassen, wenn ich versuche, das Beispiel "ImageX.exe" zu verwenden?

Inhalt der 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\ 

Inhalt der 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%Drivers\790\*.* o:\Windows\INF\790\ /E /Q /Y  MD o:\Windows\Setup\Scripts\ Copy %SecondPath%BatchFiles\SetupComplete.cmd o:\Windows\Setup\Scripts\ /y  Goto Done  :Done Exit 
1
Willkommen bei Super User! Bitte achten Sie darauf, Ihre Beiträge korrekt zu formatieren. Geben Sie den Code ein, wählen Sie ihn aus und drücken Sie `Strg-K`, um ihn einzurücken, damit er als Code angezeigt wird. Für die Zukunft überprüfen Sie unsere Formatierungshilfe. slhck vor 11 Jahren 0

3 Antworten auf die Frage

0
uSlackr

Hilft die Verwendung von Setx? Es ändert die Benutzer- oder Systemumgebung. Schau Setx /?nach mehr

Ich habe noch nie von diesem Befehl gehört, aber es sollte ziemlich gut sein. Ich werde es testen - danke LunchBox vor 11 Jahren 0
0
Sam

Sie sollten die Datei "\ sources \ boot.wim" überprüfen, diese Datei öffnen und dann überprüfen, ob die Dateien "\ tools \ imagex.exe und bcdboot.exe" das richtige Verzeichnis in boot.wim haben.

ja alles ist im richtigen verzeichnis und wenn ich alles manuell laufe, funktioniert es. Ist die Batchdatei nicht. Die Antwort von Harry Johnson half tatsächlich, mein Problem zu lösen LunchBox vor 11 Jahren 0
0
Harry Johnston

Wie es aussieht, sollte die letzte Zeile in Ihrer startnet.cmdDatei sein

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

Da menu.baterwartet wird, dass das erste Argument der vollständige Pfad zum Tools-Verzeichnis ist, einschließlich des Laufwerkbuchstabens.

Beachten Sie, dass startnet.cmdeine Umgebungsvariable legt genannt, wdie menu.batverwendet werden könnte (aber zur Zeit nicht!), So wäre eine andere Lösung sein, um alle Instanzen zu ersetzen %SecondPath%mit %w%:%SecondPath%.

Was am Ende funktionierte, war zu verwenden: LunchBox vor 11 Jahren 0
Die Arbeit bestand darin, am Ende die erste von mir festgelegte Variable zu verwenden. Die erste Variable heißt% MainPath% und wurde von einem Kollegen empfohlen, diese Variable an die zweite Batchdatei zu übergeben, aber für die Variable einen anderen Namen zu verwenden, um Verwirrung zu vermeiden. Nun, das hat nicht funktioniert, aber was funktioniert hat, war zu sehen:% MainPatch% \ Images \ *. Wim usw. Ich werde meinen Vorschlag entsprechend meinem eigenen Wissen testen. Vielen Dank LunchBox vor 11 Jahren 0