WinPE, Startnet.CMD และส่งผ่านตัวแปรไปยังไฟล์ชุดที่สองไม่ทำงาน


0

ฉันไม่รู้จักสคริปต์หรือ PowerShell (ใช่ฉันต้องการเรียนรู้บางสิ่ง) ฉันไม่ใช่ผู้สร้างแฟ้มแบตช์ผู้เชี่ยวชาญ

ฉันมีแฟลชไดรฟ์ WinPE ซึ่งฉันใช้ในการปรับใช้อิมเมจระบบปฏิบัติการ ฉันมี WIM ไดรเวอร์และสิ่งอื่น ๆ ที่จำเป็นนอกเหนือจากสภาพแวดล้อม WinPE เพื่อให้มั่นใจว่าการอัปเดตการเปลี่ยนแปลงจะง่ายขึ้นสำหรับฉัน

ฉันใช้ไฟล์ชุด "STARTNET.CMD" ซึ่งเป็นส่วนหนึ่งของ WinPE

เหตุผลที่ต้องผ่านไดรฟ์ตัวอักษรคือ WinPE จะได้รับไดรฟ์ตัวอักษร X เสมอ แฟลชไดรฟ์นั้นสามารถรับตัวอักษรแบบสุ่มซึ่งจะเปลี่ยนไปตลอดเวลา

เมนูการปรับใช้ของฉันตั้งอยู่บนแฟลชไดรฟ์ซึ่งเป็นของตัวเองและไม่ได้อยู่ใน WinPE นี่คือถ้าฉันต้องการเปลี่ยนแปลงฉันไม่จำเป็นต้องทำ WinPE อีกครั้ง

ฉันสามารถค้นหาไฟล์แบตช์ "menu.bat" และเปิดใช้งานได้ ฉันใช้ตัวแปรเพื่อจับไดรฟ์ตัวอักษร ฉันเรียกไฟล์แบตช์ที่สองชื่อว่า "menu.bat" และส่งตัวแปรไปให้

เมื่อไฟล์แบตช์ที่สองโหลดฉันเชื่อว่าฉันกำลังเรียกตัวแปรอย่างถูกต้อง หากฉันแตกไฟล์แบตช์ฉันสามารถสะท้อนตัวแปรและดูการตอบกลับที่คาดไว้ ปัญหาคือฉันไม่สามารถใช้ตัวแปรเพื่อทำงานกับสิ่งใดในไฟล์แบทช์ที่สอง ในการทดสอบของฉันฉันจะได้รับสิ่งนี้เพื่อทำงานซ้ำแล้วซ้ำอีก เมื่อมันทำงานจากแฟลชไดรฟ์ USB จริงมันจะไม่ทำงาน ฉันลบความคิดเห็นออกจากไฟล์แบตช์ที่สองเพื่อทำให้มันเล็กลง

ปัญหาของฉันคือไฟล์ด้านล่างทั้งหมดได้รับข้อความแจ้งว่าระบบไม่สามารถหาเส้นทางที่ระบุ

Diskpart
Imagex.exe
bcdboot.exe

เหตุใดฉันจึงไม่สามารถทำงานได้อย่างถูกต้องเมื่อฉันลองใช้ตัวอย่าง "ImageX.exe"

เนื้อหาของ 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\

เนื้อหาของเมนู 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

ยินดีต้อนรับสู่ Super User! โปรดดูแลการจัดรูปแบบโพสต์ของคุณอย่างถูกต้อง ใส่รหัสเลือกแล้วกดCtrl-Kเพื่อเยื้องมันจึงแสดงเป็นรหัส สำหรับอนาคตตรวจสอบความช่วยเหลือในการจัดรูปแบบของเรา
slhck

คำตอบ:


0

จากรูปลักษณ์ของมันบรรทัดสุดท้ายในstartnet.cmdไฟล์ของคุณควรเป็น

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

เนื่องจากmenu.batเห็นได้ชัดว่าคาดว่าอาร์กิวเมนต์แรกจะเป็นพา ธ ที่สมบูรณ์ไปยังไดเรกทอรีเครื่องมือรวมถึงตัวอักษรไดรฟ์

โปรดทราบว่าstartnet.cmdชุดตัวแปรสภาพแวดล้อมที่มีชื่อwซึ่งmenu.batสามารถใช้ ( แต่ปัจจุบันไม่ได้!) เพื่อแก้ปัญหาอีกก็จะไปแทนที่ทุกกรณีของกับ%SecondPath%%w%:%SecondPath%


สิ่งสุดท้ายที่ต้องทำคือใช้:
LunchBox

สิ่งที่ได้ผลคือการจบลงด้วยการใช้ตัวแปรตัวแรกที่ฉันตั้งไว้ ตัวแปรแรกเรียกว่า% MainPath% และได้รับการแนะนำโดยเพื่อนร่วมงานให้ส่งต่อตัวแปรนั้นไปยังไฟล์แบตช์ที่สอง แต่ฟ้องชื่ออื่นสำหรับ vairable เพื่อป้องกันความสับสน นั่นไม่ได้ผล แต่สิ่งที่ได้ผลคือ:% MainPatch% \ Images * .wim เป็นต้นฉันจะทดสอบตามที่คุณแนะนำแม้ว่าจะเป็นความรู้ของฉันเองก็ตาม ขอบคุณ
LunchBox

0

ใช้ Setx ช่วยหรือไม่ มันปรับเปลี่ยนสภาพแวดล้อมผู้ใช้หรือสภาพแวดล้อมระบบ ดูSetx /?เพิ่มเติม


ไม่เคยได้ยินคำสั่งนั้น แต่มันก็ค่อนข้างดี ฉันจะทดสอบด้วย - ขอบคุณ
LunchBox

0

คุณควรตรวจสอบไฟล์ "\ แหล่ง \ boot.wim" เปิดไฟล์นี้จากนั้นตรวจสอบไฟล์ "\ tools \ imagex.exe และ bcdboot.exe" เหล่านี้มีไดเรกทอรีที่ถูกต้องใน boot.wim


ใช่ทุกอย่างอยู่ในไดเรกทอรีที่ถูกต้องและถ้าฉันเรียกใช้ด้วยตนเองมันทำงานได้ เป็นไฟล์แบตช์ที่ไม่มี คำตอบของแฮร์รี่จอห์นสันช่วยแก้ไขปัญหาของฉันได้จริง ๆ แล้ว
LunchBox
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.