(คำสั่ง) ช่วยให้คุณสามารถทำได้โดยไม่ต้องระบุเส้นทางที่แน่นอนไปยังไดเร็กทอรี ตัวอย่างเช่น ถ้าเราไม่ทราบอักษรระบุไดรฟ์ของระบบล่วงหน้า เราก็สามารถใช้ตัวแปรได้ตลอดเวลา %ไดรฟ์ระบบ%ซึ่งส่งคืนอักษรระบุไดรฟ์ที่ติดตั้งระบบปฏิบัติการไว้ นอกจากนี้ ตัวแปรยังใช้ในการปรับโค้ดให้เหมาะสม - พารามิเตอร์ที่ทำซ้ำซ้ำๆ (เช่น รีจิสตรีคีย์) สามารถกำหนดตัวแปรแบบสั้นและนำไปใช้ได้ บทความนี้จะกล่าวถึงรายละเอียดเทคนิคต่างๆ ในการทำงานกับตัวแปร ตลอดจนวิธีการเปลี่ยนแปลงและสร้างตัวแปรใหม่ ตอนนี้เรามาพูดถึงทุกอย่างตามลำดับ
การจำแนกประเภทของตัวแปรสภาพแวดล้อม
วิธีใช้ Windows จะแยกความแตกต่างระหว่างตัวแปรสภาพแวดล้อมสองประเภท: ระบบและภายในเครื่อง ตัวแปรระบบส่งคืนค่าเดียวกันสำหรับผู้ใช้ทั้งหมด ตัวอย่างเช่น, %ไดรฟ์ระบบ%- ตัวอักษรของไดรฟ์ระบบและจะเหมือนกันสำหรับผู้ใช้ทุกคน แต่ค่าที่ส่งคืนโดยตัวแปรท้องถิ่นจะแตกต่างกันไปขึ้นอยู่กับผู้ใช้ที่เข้าสู่ระบบ ตัวอย่างเช่น, %โปรไฟล์ผู้ใช้%สามารถส่งคืน C:\Documents and Settings\CurrentUser โดยที่ CurrentUser คือชื่อบัญชีผู้ใช้
คำสั่งจะช่วยคุณค้นหาตัวแปรสภาพแวดล้อมในระบบปฏิบัติการที่คุณสามารถใช้ได้และค่าใดที่ถูกกำหนดให้กับตัวแปรเหล่านั้นในปัจจุบัน ชุดเรียกใช้จากบรรทัดคำสั่งโดยไม่มีพารามิเตอร์ ( เริ่ม - เรียกใช้ - cmd - ตั้งค่า- ในบทความนี้เราสนใจตัวแปรที่ระบุเส้นทางไปยังโฟลเดอร์ (ไดเร็กทอรี) ต่างๆ เพิ่มเติมเล็กน้อยเกี่ยวกับบางส่วนด้านล่าง:
%SYSTEMDRIVE%|System|ส่งคืนชื่อของไดรฟ์ที่มีไดเรกทอรีรากของระบบปฏิบัติการ Windows XP/2003 (นั่นคือ ไดเรกทอรีรากของระบบ)
%SYSTEMROOT%, %WINDIR%|System|ส่งคืนตำแหน่งของไดเร็กทอรีรากของระบบปฏิบัติการ Windows /2003
%PATH%|System|ระบุพาธการค้นหาสำหรับไฟล์ปฏิบัติการ
%PROGRAMFILES%|System|ระบุพาธไปยังไดเร็กทอรีการติดตั้งโปรแกรม (ไฟล์โปรแกรม)
%COMMONPROGRAMFILES%|System|ระบุพาธไปยังไดเร็กทอรีโปรแกรมทั่วไป (Program Files\Common Files)
%TEMP% และ %TMP%|ระบบและผู้ใช้|ส่งคืนโฟลเดอร์ชั่วคราวเริ่มต้นที่ใช้โดยแอปพลิเคชันที่ผู้ใช้ที่เข้าสู่ระบบสามารถเข้าถึงได้ แอปพลิเคชั่นบางตัวต้องการตัวแปร TEMP และแอปพลิเคชั่นบางตัวจำเป็นต้องใช้ตัวแปร TMP
%USERPROFILE%|Local|ส่งคืนตำแหน่งโปรไฟล์สำหรับผู้ใช้ปัจจุบัน
%ALLUSERSPROFILE%|Local|ส่งคืนตำแหน่งของโปรไฟล์ "ผู้ใช้ทั้งหมด"
%CD%|Local|ส่งคืนเส้นทางไปยังโฟลเดอร์ปัจจุบัน
%APPDATA%|Local|ส่งคืนตำแหน่งเริ่มต้นของข้อมูลแอปพลิเคชัน
การใช้ตัวแปรในไฟล์แบตช์
เริ่มจากตัวอย่างง่ายๆ:
CMD/แบทช์:
DEL /F /Q "%AllUsersProfile%\Main Menu\Windows Activation.lnk" DEL /F /Q "%AllUsersProfile%\Main Menu\WindowsUpdate.lnk" DEL /F /Q "%systemroot%\system32\*.scr "
ในตัวอย่างนี้ ฉันจะลบทางลัดด้านบนที่ปรากฏในเมนู Start โดยใช้ตัวแปร %โปรไฟล์ผู้ใช้ทั้งหมด%รวมถึงไฟล์ทั้งหมดที่มีนามสกุล SCR จากไดเร็กทอรี Windows\system32 โดยใช้ตัวแปร %รูทระบบ%- แทนที่จะเป็น DEL /F /Q อย่างที่คุณเข้าใจอาจมีอะไรก็ได้ตั้งแต่คำสั่ง copy COPY ไปจนถึงคำสั่งเพื่อเปิดการติดตั้งแอปพลิเคชันที่เราต้องการพร้อมพารามิเตอร์บรรทัดคำสั่งทั้งหมดหากจำเป็น
ในคำสั่งทั้งหมดฉันใช้ "เครื่องหมายคำพูด" โดยเฉพาะ - นี่ไม่ใช่เรื่องบังเอิญ เส้นทางทั้งหมด รวมถึงตัวแปร จะต้องอยู่ในเครื่องหมายคำพูด หากคุณใช้เส้นทางที่มีการเว้นวรรค แม้ว่าตัวตัวแปรเองจะไม่มีเครื่องหมายคำพูด หลังจากที่ระบบแยกวิเคราะห์แล้ว ช่องว่างอาจปรากฏในเส้นทาง (ตัวอย่างเช่น %ไฟล์โปรแกรม%ในไฟล์ C:\Program) ไม่ว่าในกรณีใด ควรใช้เครื่องหมายคำพูด - นี่เป็นแนวปฏิบัติที่ดีในการออกแบบไฟล์คำสั่ง
วิธีการตั้งค่าตัวแปรของคุณ
ตัวอย่างข้างต้นใช้ตัวแปรสภาพแวดล้อมที่มีอยู่แล้ว และคุณอาจสังเกตเห็นสัญลักษณ์เปอร์เซ็นต์ที่อยู่รอบๆ ชื่อตัวแปร อักขระเหล่านี้จำเป็นเพื่อให้สามารถทดแทนตัวแปรบนบรรทัดคำสั่งหรือในแบตช์ไฟล์ สัญลักษณ์เปอร์เซ็นต์ระบุว่า Cmd.exe ควรเข้าถึงค่าของตัวแปรแทนที่จะทำการเปรียบเทียบแบบอักขระต่ออักขระ ด้านล่างนี้คุณจะเห็นวิธีการทำงาน คุณสามารถตั้งค่าตัวแปรของคุณในไฟล์แบตช์ด้วยคำสั่ง SET
คำสั่ง SET
คุณสามารถตั้งค่าตัวแปรของคุณในแบตช์ไฟล์ได้โดยใช้คำสั่ง SET เดียวกัน
หากต้องการเพิ่มตัวแปร ให้ป้อนที่บรรทัดคำสั่ง:
รหัส:
ตั้งค่า Variable_name=value
หากต้องการแสดงตัวแปร ให้ป้อนที่บรรทัดคำสั่ง:
รหัส:
ตั้งค่าตัวแปร_ชื่อ
หากต้องการลบตัวแปร ให้ป้อนที่บรรทัดคำสั่ง:
รหัส:
ตั้งค่าตัวแปร_ชื่อ=
ตัวอย่างเช่น,
รหัส:
SET mydir=D:\Files\Work
ตั้งค่าตัวแปร มิดีร์ซึ่งจะคืนเส้นทางไปยังโฟลเดอร์ที่ระบุ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับทีมได้จาก ชุด /?.
หมายเหตุสำคัญ:ตัวแปรที่ตั้งค่าโดยคำสั่ง set จะใช้ได้เฉพาะในช่วงระยะเวลาของเซสชันคำสั่ง (ดูด้านล่าง) ที่ตั้งค่าไว้เท่านั้น
คุณสามารถสร้างตัวแปรเหล่านี้สำหรับเส้นทางใดก็ได้ คุณเพียงแค่ต้องตั้งค่าหรือค้นหาอัลกอริทึมสำหรับการกำหนดตัวแปรในแต่ละสถานการณ์ โดยใช้ตัวอย่างสำเร็จรูปหรือสร้างของคุณเองตามตัวแปรเหล่านั้น โดยทั่วไปแล้ว ตัวแปรดังกล่าวจะถูกสร้างขึ้นในเซสชันปัจจุบันโดยไฟล์แบตช์โดยใช้คำสั่งบางคำสั่ง
ตัวอย่างการกำหนดตัวแปรในไฟล์ RunOnceEx.cmdการนำเข้าการตั้งค่าไปยังรีจิสทรี
CMD/แบทช์:
@echo off SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx SET i=100 REG เพิ่ม %KEY% /V TITLE /D "การติดตั้งแอปพลิเคชัน" /f REG เพิ่ม %KEY%\%i% /VE /D "WinRar 3.51" /f REG เพิ่ม %KEY%\%i% /V 1 /D "%systemdrive%\install\Software\WinRar.exe /s" /f REG เพิ่ม %KEY%\%i% /V 2 / D "REGEDIT /S %systemdrive%\install\Software\rar_set.reg /s" /f SET /A i+=1
ในสคริปต์นี้ คำสั่ง SET จะตั้งค่าตัวแปรสองตัว - %ฉัน%และ %สำคัญ%- โปรดทราบว่ามีการระบุไว้โดยไม่มีสัญลักษณ์เปอร์เซ็นต์ แต่หากต้องการเข้าถึง %% เป็นสิ่งจำเป็นอยู่แล้ว ตัวแปร %สำคัญ%ทำหน้าที่ลดความซับซ้อนและเพิ่มประสิทธิภาพโค้ด ยังคงไม่เปลี่ยนแปลงตลอดเซสชันคำสั่งปัจจุบัน ทำให้ไม่จำเป็นต้องรวมคีย์รีจิสทรีในโค้ดในแต่ละครั้ง ทุกครั้งที่ปรากฏในโค้ด %สำคัญ%มันจะถูกแทนที่ด้วย HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx แต่ %ฉัน%ทำหน้าที่สำหรับการกำหนดหมายเลขตามลำดับของส่วนรีจิสทรี ด้วยค่าเริ่มต้นที่ 100 ตัวแปรจะเพิ่มขึ้นทีละหนึ่งโดยใช้คำสั่ง SET /A i+=1 หลังจากแต่ละบล็อคของคำสั่ง ส่งผลให้เกิดลำดับ 100, 101, 102 เป็นต้น ดังนั้นเส้น
รหัส:
REG เพิ่ม %KEY%\%i% /V 1 /D "%systemdrive%\install\Software\WinRar.exe /s" /f
จริงๆ แล้วมันจะทำงานแบบนี้
รหัส:
REG เพิ่ม HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\100 /V 1 /D "C:\install\Software\WinRar.exe /s" /f
โปรดทราบว่าตัวอย่างไฟล์ยังใช้ตัวแปรระบบด้วย %ไดรฟ์ระบบ%ซึ่งสอดคล้องกับอักษรระบุไดรฟ์ของระบบ
ตัวอย่างการกำหนดตัวแปรในไฟล์คำสั่งที่ติดตั้งแอปพลิเคชันจากซีดี:
รหัส:
สำหรับ %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) ให้ทำถ้ามี %%i:\WIN51 ให้ตั้งค่า CDROM=%%i: start /wait “%CDROM%\INSTALL\DVDTools\NBRom\Nero.exe”
ในตัวอย่างนี้ ไดรฟ์ทั้งหมดที่อยู่ในรายการจะถูกค้นหาไฟล์ที่ต้องการ (WIN51) หากตรวจพบบนดิสก์ตัวใดตัวหนึ่ง ดิสก์ตัวหลังจะถูกกำหนดตัวแปร %ซีดีรอม%จากนั้นซอฟต์แวร์จะถูกติดตั้งโดยใช้เส้นทางที่ระบุโดยตัวแปรที่สร้างขึ้น
การเปลี่ยนตัวแปรสภาพแวดล้อมและเพิ่มตัวแปรของคุณเอง
ตามที่กล่าวไว้ข้างต้น ผลกระทบของตัวแปรที่ตั้งค่าด้วยคำสั่ง set จะถูกจำกัดไว้ที่เซสชันคำสั่งปัจจุบัน หากคุณต้องการรับตัวแปรระบบหรือผู้ใช้จากตัวแปรชั่วคราว คุณต้องลงทะเบียนตัวแปรดังกล่าวในรีจิสทรี ซึ่งสามารถทำได้หลายวิธี
ยูทิลิตี้ setenv
ยูทิลิตี้นี้ทำงานจากบรรทัดคำสั่ง (เว็บไซต์ ดาวน์โหลด) ยูทิลิตี้นี้ใช้งานง่ายมาก (setenv /?)
การตั้งค่าผู้ใช้ | setenv -u ค่าตัวแปรชื่อ
การตั้งค่าระบบ | setenv -m ค่าตัวแปร_ชื่อ
การตั้งค่า ผู้ใช้เริ่มต้น | setenv -d ค่าตัวแปรชื่อ
การตั้งค่าเซสชันผู้ใช้ปัจจุบัน | ค่า setenv -v ชื่อตัวแปร
สมมติว่า หากคุณต้องการรับตัวแปร %temp% ในขั้นตอนการติดตั้ง คุณสามารถทำได้จาก cmdlines.txt ตัวอย่างเช่น:
รหัส:
:: การสร้างและการตั้งค่าโฟลเดอร์ Temp... md %systemdrive%\Temp setenv -u Temp %systemdrive%\Temp setenv -u Tmp %systemdrive%\Temp
ยูทิลิตี้นี้สะดวกเพราะหลังจากตั้งค่าตัวแปรแล้วสามารถใช้งานได้ทันที เกือบจะในทันที - ในเซสชั่นของทีมถัดไป หากต้องการใช้ในเซสชันปัจจุบัน คุณสามารถใช้คำสั่ง set ที่คุ้นเคยเดิมได้:
รหัส:
:: การสร้าง #EgOrus# var set EgOrus=D:\EgOrus setenv -u EgOrus %EgOrus%
การนำเข้าการตั้งค่าไปยังรีจิสทรีหากคุณดำเนินการเปลี่ยนแปลงรีจิสทรีหลังจากการเข้าสู่ระบบครั้งแรกตัวแปรจะเริ่มทำงานหลังจากรีบูตหรือสิ้นสุดเซสชันผู้ใช้เท่านั้น แน่นอนในระหว่างกระบวนการติดตั้งอัตโนมัติ คุณสามารถนำเข้าพารามิเตอร์ที่ต้องการไปยัง T-12 ได้ (ดูบทความ Registry Tweaks) และหลีกเลี่ยงปัญหานี้ หากคุณไม่ต้องการใช้ตัวแปรที่กำหนดในเซสชันผู้ใช้ปัจจุบัน การนำเข้าสู่รีจิสทรีก็อาจเหมาะกับคุณเช่นกัน ฉันจะไม่อธิบายขั้นตอนการนำเข้าไฟล์ REG อีก แต่จะพิจารณาคำสั่ง REG ADD โดยใช้ตัวอย่างเฉพาะ
สมมติว่าคุณสนใจที่จะมีตัวแปรในระบบ %ซีดีรอม%อย่างถาวรและติดตั้งระหว่างการติดตั้งแอปพลิเคชันจากซีดี ตามโค้ดข้างต้น หลังจากกำหนดตัวแปรแล้ว คุณต้องกำหนดตัวแปรให้กับระบบ
CMD/แบทช์:
สำหรับ %%i ใน (C D E F G H I J K L M N O P Q R S T U V W X Y Z) ให้ทำถ้ามี %%i:\WIN51 ตั้ง CDROM=%%i: REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v cdrom /d %CDROM% / ฉ
เมื่อพบไฟล์ WIN51 ไดรฟ์ที่พบจะถูกกำหนดตัวแปรท้องถิ่น %ซีดีรอม%ซึ่งถูกกำหนดให้เป็นตัวแปรระบบคงที่ทันทีโดยการนำเข้าลงในรีจิสทรี วิธีการนี้ถูกเสนอในหัวข้อหนึ่งในการประชุม Oszone Sanja Alone ขณะเดียวกันคุณก็ค้นพบว่า โดยที่การตั้งค่าตัวแปรระบบถูกเก็บไว้ในรีจิสทรี การตั้งค่าตัวแปรผู้ใช้จะถูกจัดเก็บไว้ใน HKCU\Environment เส้นทางที่ส่งคืนโดยตัวแปร %PROGRAMFILES% และ %COMMONPROGRAMFILES% สามารถดูได้ในพารามิเตอร์ ProgramFilesDir และ CommonFilesDir ใน HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion แต่ไม่ควรเปลี่ยนแปลงที่นั่น ไดเร็กทอรีการติดตั้งโปรแกรม (นอกเหนือจาก %SystemDrive%\Program Files) จะต้องได้รับการกำหนดค่าผ่านไฟล์คำตอบ
ประวัติย่อ
เชลล์คำสั่ง Windows (cmd.exe) เป็นเครื่องมือที่ทรงพลังมากสำหรับการทำงานกับระบบ ไฟล์แบตช์สามารถทำงานอัตโนมัติได้จำนวนมาก ซึ่งเป็นสาเหตุที่ว่าทำไมไฟล์เหล่านี้จึงมักถูกใช้เพื่อติดตั้ง Windows โดยอัตโนมัติ การใช้ตัวแปรอย่างชำนาญในไฟล์แบตช์ช่วยให้คุณสามารถแก้ไขปัญหาได้หลากหลาย การทำงานกับเชลล์คำสั่งจะมีประสิทธิภาพมากขึ้นและในขณะเดียวกันโค้ดของไฟล์แบตช์ก็ง่ายขึ้น คุณสามารถดูตัวอย่างอื่นๆ ของการใช้ตัวแปรได้ที่หน้าเว็บไซต์หรือฟอรั่ม ตัวอย่างทั้งหมดที่ใช้ในบทความนี้นำมาจากสคริปต์ของผู้เข้าร่วมฟอรัม OsZone.ru ซึ่งต้องขอบคุณพวกเขามาก
คำศัพท์เฉพาะทาง
เชลล์คำสั่งเป็นผลิตภัณฑ์ซอฟต์แวร์แยกต่างหากที่ให้การสื่อสารโดยตรงระหว่างผู้ใช้และระบบปฏิบัติการ ส่วนติดต่อผู้ใช้ข้อความบรรทัดคำสั่งจัดเตรียมสภาพแวดล้อมในการรันแอปพลิเคชันและยูทิลิตีที่ใช้ข้อความ
cmd.exe- ตัวแปลคำสั่งที่เชลล์คำสั่ง Windows OS ใช้เพื่อแปลคำสั่งที่ป้อนเป็นรูปแบบที่ระบบเข้าใจ
เซสชั่นของทีมสามารถเริ่มต้นได้โดยการเปิดตัว cmd.exeและโดยการรันแบตช์ไฟล์ กล่าวอีกนัยหนึ่ง เชลล์คำสั่งปัจจุบันจะถูกสร้างขึ้น ดังนั้น การออกจากเชลล์นี้ (เช่น การจบแบตช์ไฟล์) จะเป็นการสิ้นสุดเซสชันคำสั่ง
เซสชันผู้ใช้(เซสชันผู้ใช้) เริ่มต้นเมื่อผู้ใช้เข้าสู่ระบบ (เข้าสู่ระบบ) และสิ้นสุดเมื่อผู้ใช้ออกจากระบบ (ออกจากระบบ)
ตั้งค่า ลบ และดูตัวแปรสภาพแวดล้อม เรียกโดยไม่มีพารามิเตอร์คำสั่ง ชุดแสดงรายการตัวแปรสภาพแวดล้อมที่ตั้งค่าไว้และค่าของมัน
ไวยากรณ์
ชุด [[/ก [การแสดงออก]] [/หน้า [ตัวแปร = ]] เส้น]
ตัวเลือก
/a บ่งชี้ว่าพารามิเตอร์ เส้นเป็นนิพจน์ตัวเลขที่คำนวณได้ /p ตั้งค่าสายอินพุตตัวแปร ระบุชื่อของตัวแปรที่มีค่าที่คุณต้องการตั้งค่าหรือเปลี่ยนแปลง
- string ตั้งค่าสตริงสำหรับตัวแปรที่ระบุ ชุด- แสดงความช่วยเหลือบนบรรทัดคำสั่ง
หมายเหตุ ชุดโดยใช้คำสั่ง
- ในคอนโซลการกู้คืน
ทีม<, >พร้อมพารามิเตอร์อื่นๆ มีอยู่ในคอนโซลการกู้คืน เส้นการใช้อักขระพิเศษ " สัญลักษณ์ & , |, &, ^ เป็นอักขระเชลล์พิเศษ คุณต้องนำหน้าด้วยอักขระควบคุม (^) หรือใส่ไว้ในเครื่องหมายคำพูดเมื่อใช้อักขระในพารามิเตอร์" (ตัวอย่างเช่น,
- content_line
เครื่องหมาย ชุด- เมื่อคุณอ้างอิงสตริงที่มีอักขระพิเศษ เครื่องหมายคำพูดจะถือว่าเป็นส่วนหนึ่งของค่าตัวแปรสภาพแวดล้อม
- การใช้ตัวแปรสภาพแวดล้อม
ตัวแปรสภาพแวดล้อมใช้เพื่อควบคุมการทำงานของไฟล์แบตช์และโปรแกรมบางรายการ และเพื่อควบคุมการทำงานของ Windows XP และระบบย่อย MS-DOS ทีม ชุดมักใช้ในไฟล์ Autoexec.nt เพื่อตั้งค่าตัวแปรสภาพแวดล้อม
- แสดงการตั้งค่าสภาพแวดล้อมปัจจุบัน
เมื่อทีมงาน
เรียกโดยไม่มีพารามิเตอร์ การตั้งค่าปัจจุบันจะแสดงบนหน้าจอ โดยทั่วไปการตั้งค่าเหล่านี้จะรวมถึงตัวแปร COMSPEC และ PATH ซึ่งใช้เพื่อค้นหาโปรแกรมบนดิสก์ ตัวแปรสภาพแวดล้อมอีกสองตัวที่ Windows ใช้คือ PROMPT และ DIRCMD ชุดการใช้พารามิเตอร์
- เมื่อคุณระบุค่าสำหรับตัวแปรและสตริง ค่าของตัวแปรจะถูกเพิ่มลงในสภาพแวดล้อม และสตริงจะถูกแมปกับตัวแปรนั้น หากมีตัวแปรอยู่แล้ว ค่าใหม่จะแทนที่ค่าเก่า /ก
ถ้าอยู่ในทีม /กหากระบุเฉพาะชื่อตัวแปรและเครื่องหมายเท่ากับ (ไม่มีค่า) ค่าใดๆ จะไม่ถูกกำหนดให้กับตัวแปรสภาพแวดล้อมอีกต่อไป ซึ่งเทียบเท่ากับการลบตัวแปรสภาพแวดล้อม
การใช้งาน
ตารางต่อไปนี้แสดงตัวดำเนินการที่รองรับพารามิเตอร์ ตามลำดับลำดับความสำคัญจากมากไปหาน้อยเมื่อใช้ตัวดำเนินการเชิงตรรกะ (&& ||) หรือตัวดำเนินการส่วนที่เหลือ (%) ให้ใส่นิพจน์สตริงไว้ในเครื่องหมายคำพูด สตริงที่ไม่ใช่ตัวเลขในนิพจน์จะถือเป็นชื่อตัวแปรสภาพแวดล้อมที่มีค่าจะถูกแปลงเป็นตัวเลขก่อนการประมวลผล หากมีการระบุชื่อตัวแปรสภาพแวดล้อมที่ไม่ได้กำหนดไว้ในสภาพแวดล้อมปัจจุบัน ชื่อนั้นจะถูกตั้งค่าเป็นศูนย์ ซึ่งอนุญาตให้ดำเนินการทางคณิตศาสตร์กับค่าตัวแปรสภาพแวดล้อมได้โดยไม่ต้องใช้ % เพื่อรับค่า
ค่าตัวเลขเป็นเลขทศนิยม ยกเว้นตัวเลขที่นำหน้าด้วย 0x สำหรับเลขฐานสิบหก และ 0 สำหรับเลขฐานแปด ดังนั้น 0x12 จึงเหมือนกับ 18 และ 022 การแทนเลขฐานแปดต้องได้รับการดูแลเอาใจใส่ ตัวอย่างเช่น 08 และ 09 ไม่ถูกต้องเนื่องจาก 8 และ 9 ไม่ใช่เลขฐานแปด
- เมื่อคุณระบุค่าสำหรับตัวแปรและสตริง ค่าของตัวแปรจะถูกเพิ่มลงในสภาพแวดล้อม และสตริงจะถูกแมปกับตัวแปรนั้น หากมีตัวแปรอยู่แล้ว ค่าใหม่จะแทนที่ค่าเก่า /หน้า
ใช้เมื่อคุณไม่จำเป็นต้องเปิดใช้งานบรรทัดคำสั่ง
- รองรับการขยายตัวแปรสภาพแวดล้อมด้วยความล่าช้า
เพิ่มการรองรับการขยายตัวแปรสภาพแวดล้อมด้วยความล่าช้า การสนับสนุนนี้ถูกปิดใช้งานโดยค่าเริ่มต้น คุณสามารถเปิดหรือปิดใช้งานได้โดยใช้คำสั่ง คำสั่ง /v.
- การทำงานกับส่วนขยายคำสั่ง
เมื่อเปิดใช้งานส่วนขยายคำสั่ง (ค่าเริ่มต้น) และคำสั่งทำงานอยู่ ชุดหากไม่มีค่า ตัวแปรสภาพแวดล้อมปัจจุบันทั้งหมดจะแสดงขึ้น หากได้ดำเนินการตามคำสั่งแล้ว ชุดที่มีค่า ตัวแปรที่สอดคล้องกับค่านั้นจะปรากฏขึ้น
- string ตั้งค่าสตริงสำหรับตัวแปรที่ระบุ ชุดในไฟล์แบตช์
เมื่อสร้างไฟล์แบตช์ให้ใช้คำสั่ง ชุดเพื่อสร้างตัวแปรและใช้เป็นตัวแปรตัวเลขจาก %0 ถึง %9 - คุณยังสามารถใช้ตัวแปรจาก %0 ถึง %9 เป็นอินพุตสำหรับคำสั่ง ชุด.
- การเข้าถึงตัวแปรคำสั่ง ชุดจากโปรแกรมแพ็คเกจ
เมื่อเข้าถึงตัวแปรจากโปรแกรมแบตช์ ชื่อตัวแปรจะต้องล้อมรอบด้วยเครื่องหมายเปอร์เซ็นต์ (%) ตัวอย่างเช่น ถ้าตัวแปร BAUD ถูกสร้างขึ้นในโปรแกรมแบตช์ พารามิเตอร์ทดแทนสามารถเชื่อมโยงกับตัวแปรนั้นได้โดยใช้ชื่อ %บอด%บนบรรทัดคำสั่ง
ตัวอย่าง
หากต้องการตั้งค่าตัวแปรสภาพแวดล้อมชื่อ TEST^1 ให้ป้อนคำสั่ง:
ตั้งค่า testVar=test^1
หากต้องการตั้งค่าตัวแปรสภาพแวดล้อมชื่อ TEST&1 ให้ป้อนคำสั่ง:
ตั้งค่า testVar=test^&1
คำสั่งตัวแปรค่า ชุดกำหนดทุกสิ่งที่ตามหลังเครื่องหมายเท่ากับ (=)
เมื่อเข้า:
ตั้งค่า testVar = "ทดสอบ ^ 1"
ผลลัพธ์จะเป็นดังนี้:
testVar = "ทดสอบ ^ 1"
ในการตั้งค่าตัวแปรสภาพแวดล้อม INCLUDE เพื่อให้เชื่อมโยงกับสตริง C:\Inc (ไดเร็กทอรี Inc บนไดรฟ์ C) คุณสามารถใช้คำสั่งต่อไปนี้:
ชุดรวม=c:\inc
บรรทัด C:\Inc สามารถใช้ในแบตช์ไฟล์ได้โดยการใส่ชื่อ INCLUDE ไว้ในเครื่องหมายเปอร์เซ็นต์ (%) ตัวอย่างเช่น ในแบตช์ไฟล์ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อพิมพ์เนื้อหาของไดเร็กทอรีที่ชี้ไปโดยตัวแปรสภาพแวดล้อม INCLUDE: เมื่อดำเนินการคำสั่งบรรทัด%รวม%
จะถูกแทนที่ด้วยสตริง C:\Inc ชุดคุณยังสามารถใช้คำสั่ง
ในโปรแกรมแบตช์ที่เพิ่มไดเร็กทอรีใหม่ให้กับตัวแปรสภาพแวดล้อม PATH ตัวอย่างเช่น:
@ปิดเสียงสะท้อน
rem ADDPATH.BAT เพิ่มไดเร็กทอรีใหม่
rem ไปยังตัวแปรสภาพแวดล้อมของเส้นทาง
กำหนดเส้นทาง=%1;%เส้นทาง%
เมื่อเปิดใช้งานส่วนขยายคำสั่ง (ค่าเริ่มต้น) และคำสั่งกำลังทำงานอยู่ ชุดด้วยค่า ตัวแปรสภาพแวดล้อมทั้งหมดที่สอดคล้องกับค่าจะปรากฏขึ้น ตัวอย่างเช่น เมื่อเข้าสู่บรรทัดคำสั่ง: ชุด พีผลลัพธ์จะเป็นดังนี้:
เส้นทาง=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 ตระกูล 6 รุ่น 8 Stepping 1, ของแท้ Intel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0801
ProgramFiles=C:\Program Files
PROMPT=$P$G
เทคนิคและคุณสมบัติบางประการของการทำงานกับคำสั่ง Set สามารถพบได้ในส่วนการประมวลผลข้อมูลทางคณิตศาสตร์
สำหรับคำถาม การอภิปราย ความคิดเห็น ข้อเสนอแนะ ฯลฯ คุณสามารถใช้ส่วนฟอรั่มของเว็บไซต์นี้ (ต้องลงทะเบียน)
บางครั้งก็จำเป็นต้องสร้าง ตัวแปรวันที่และเวลาวี cmd/batสคริปต์ หน้าต่างในแบบที่เราต้องการ ไม่ใช่วิธีที่ระบบปฏิบัติการมอบให้เรา
ตัวอย่างเช่น หากต้องการเพิ่มข้อมูลนี้ลงในไฟล์บันทึก หากต้องการบันทึกเวลาหรือวันที่ของเหตุการณ์ ให้สร้างไฟล์ที่มีชื่อที่ควรมีข้อมูลวันที่หรือเวลา (วัน เดือน ปี ชั่วโมง นาที วินาที มิลลิวินาที ) คุณไม่มีทางรู้หรอกว่างานของเราคืออะไร... มาใช้จินตนาการของเรากันเถอะ :)
ในตัวอย่างต่อไปนี้ เราจะเห็นการแจกแจงตัวแปรตามรูปแบบที่เราต้องการ
ชั่วโมง- ชั่วโมง 2 หลัก (นั่นคือชั่วโมงจะได้รับในรูปแบบต่อไปนี้ - 01, 02, ... , 09, ... , 12, ... 24)
ม. - นาที 2 ตัวอักษร
s - วินาที 2 สัญญาณ
ms - มิลลิวินาที 2 หลัก ด้วยเหตุผลบางประการตั้งแต่ 0 ถึง 99
dd - สัญญาณวันที่ 2
มม. - เดือน 2 ตัวอักษร
ปปปป - ปี 4 หลัก
ตัวอย่างการใช้ตัวแปร %วันที่%และ %เวลา%ในสคริปต์ คำสั่ง / ค้างคาวหน้าต่าง:
ในโปรแกรมแบตช์ที่เพิ่มไดเร็กทอรีใหม่ให้กับตัวแปรสภาพแวดล้อม PATH ตัวอย่างเช่น:
ตั้งชั่วโมง=%เวลา:~0.2%
ตั้ง ม.=%เวลา:~3.2%
ตั้งค่า s=%เวลา:~6.2%
ตั้งค่า ms=%เวลา:~9.2%
ตั้งค่าเคอร์ไทม์=%h%:%m%:%s%:%ms%
ตั้ง dd=%วันที่:~0.2%
ตั้ง มม.=%วันที่:~3.2%
ตั้ง ปปปป=%วันที่:~6.4%
ตั้ง curdate=%dd%-%mm%-%yyyy%
ตั้งค่า curdatetime=%curdate% %curtime%
echo เวลาปัจจุบันคือ %curdatetime%
ใน Windows บางเวอร์ชัน รูปแบบการออกวันที่และเวลาจะแตกต่างกัน ดังนั้นสคริปต์นี้จึงสามารถทำงานได้ตรงตามที่เราต้องการ
ตามทฤษฎี คุณสามารถแยกส่วนของตัวแปรใดๆ ก็ได้ในลักษณะเดียวกัน ประเด็นก็คือ รูปแบบที่นี่จะเป็นดังนี้:
หลักแรกหลังจาก: ~ คือจำนวนอักขระที่เราเริ่มรับค่า หลักที่สองคือจำนวนอักขระที่จะจับ
ดังนั้นปรากฎว่าเราสามารถรับส่วนใดส่วนหนึ่งของตัวแปรสภาพแวดล้อม Windows ที่มีอยู่สำหรับความต้องการของเราได้
ฉันรู้ตัวแปรต่อไปนี้ซึ่งมีค่าที่เราสามารถรับได้:
โปรไฟล์ผู้ใช้ทั้งหมด | ส่งกลับตำแหน่งของโปรไฟล์ "ผู้ใช้ทั้งหมด" |
ข้อมูลแอป | ส่งกลับตำแหน่งเริ่มต้นสำหรับข้อมูลแอปพลิเคชัน |
ซีดี | ระบุเส้นทางของโฟลเดอร์ปัจจุบัน เหมือนกับคำสั่ง CD โดยไม่มีอาร์กิวเมนต์ |
CMDCMDLINE | คำสั่งที่แน่นอนที่ใช้ในการเริ่ม cmd.exe ปัจจุบัน |
CMDEXTVERSION | เวอร์ชันของส่วนขยายตัวประมวลผลคำสั่งปัจจุบัน |
CommonProgramFiles | ตำแหน่งของไดเร็กทอรี "Common Files" (โดยปกติจะเป็น %ProgramFiles%\Common Files) |
ชื่อคอมพิวเตอร์ | ชื่อคอมพิวเตอร์ |
คอมสเปค | เส้นทางสู่การเรียกทำงานของเชลล์ |
วันที่ | ส่งกลับวันที่ปัจจุบัน ใช้รูปแบบเดียวกับคำสั่ง date /t สร้างโดยคำสั่ง Cmd.exe |
ระดับข้อผิดพลาด | ส่งกลับรหัสข้อผิดพลาดของคำสั่งสุดท้ายที่ใช้ ค่าที่ไม่ใช่ศูนย์มักจะบ่งบอกถึงข้อผิดพลาด |
โฮมไดรฟ์ | ส่งกลับชื่อของไดรฟ์เวิร์กสเตชันในเครื่องที่เชื่อมโยงกับโฮมไดเร็กทอรีของผู้ใช้ ตั้งค่าตามตำแหน่งของไดเร็กทอรีหลัก โฮมไดเร็กทอรีของผู้ใช้ถูกระบุในสแนปอินผู้ใช้และกลุ่มภายในเครื่อง |
โฮมพาธ | ส่งกลับเส้นทางแบบเต็มไปยังโฮมไดเร็กตอรี่ของผู้ใช้ ตั้งค่าตามตำแหน่งของไดเร็กทอรีหลัก โฮมไดเร็กทอรีของผู้ใช้ถูกระบุในสแนปอินผู้ใช้และกลุ่มภายในเครื่อง |
โฮมแชร์ | ส่งกลับเส้นทางเครือข่ายไปยังโฮมไดเร็กตอรี่ที่แชร์ของผู้ใช้ ตั้งค่าตามตำแหน่งของไดเร็กทอรีหลัก โฮมไดเร็กทอรีของผู้ใช้ถูกระบุในสแนปอินผู้ใช้และกลุ่มภายในเครื่อง |
เข้าสู่ระบบเซิร์ฟเวอร์ | ชื่อของตัวควบคุมโดเมนที่ใช้ในการอนุญาตผู้ใช้ปัจจุบัน |
NUMBER_OF_PROCESSORS | จำนวนโปรเซสเซอร์ในระบบ |
ระบบปฏิบัติการ | ชื่อระบบปฏิบัติการ Windows XP และ Windows 2000 ปรากฏเป็น Windows_NT |
เส้นทาง | ระบุพาธการค้นหาสำหรับไฟล์ปฏิบัติการ |
เส้นทาง | ส่งคืนรายการนามสกุลไฟล์ที่ระบบปฏิบัติการพิจารณาว่าสามารถเรียกใช้งานได้ |
PROCESSOR_สถาปัตยกรรม | สถาปัตยกรรมโปรเซสเซอร์ |
PROCESSOR_IDENTIFIER | คำอธิบายโปรเซสเซอร์ |
PROCESSOR_LEVEL | หมายเลขรุ่นโปรเซสเซอร์ |
PROCESSOR_REVISION | การแก้ไขโปรเซสเซอร์ |
โปรแกรมไฟล์ | เส้นทางไปยังโฟลเดอร์ Program Files |
พร้อมท์ | ส่งคืนตัวเลือกบรรทัดคำสั่งสำหรับล่ามปัจจุบัน สร้างโดยคำสั่ง Cmd.exe |
สุ่ม | เลขทศนิยมสุ่มตั้งแต่ 0 ถึง 32767 สร้างโดย Cmd.exe |
SESSIONNAME | ประเภทเซสชัน ค่าเริ่มต้นคือ "คอนโซล" |
ไดรฟ์ระบบ | ดิสก์ที่มีโฟลเดอร์รูทของ Windows |
ระบบรูท | เส้นทางโฟลเดอร์รูทของ Windows |
อุณหภูมิหรือ TMP | ส่งคืนโฟลเดอร์ชั่วคราวเริ่มต้นที่ใช้โดยแอปพลิเคชันที่ผู้ใช้ที่เข้าสู่ระบบสามารถเข้าถึงได้ แอปพลิเคชั่นบางตัวต้องการตัวแปร TEMP และแอปพลิเคชั่นบางตัวจำเป็นต้องใช้ตัวแปร TMP TEMP และ TMP อาจชี้ไปยังไดเร็กทอรีที่แตกต่างกัน แต่โดยปกติแล้วจะเหมือนกัน |
เวลา | ส่งกลับเวลาปัจจุบัน ใช้รูปแบบเดียวกับคำสั่ง time /t สร้างโดยคำสั่ง Cmd.exe |
โดเมนผู้ใช้ | ชื่อของโดเมนที่ผู้ใช้ปัจจุบันอยู่ |
ชื่อผู้ใช้ | ชื่อผู้ใช้ปัจจุบัน |
โปรไฟล์ผู้ใช้ | เส้นทางไปยังโปรไฟล์ของผู้ใช้ปัจจุบัน |
วินเดียร์ | ไดเร็กทอรีที่ติดตั้ง Windows |
ภายในไฟล์แบตช์ คุณสามารถทำงานกับสิ่งที่เรียกว่าตัวแปรสภาพแวดล้อม (หรือตัวแปรสภาพแวดล้อม) ซึ่งแต่ละไฟล์จะถูกเก็บไว้ใน RAM มีชื่อเฉพาะของตัวเอง และค่าของมันคือสตริง ตัวแปรสภาพแวดล้อมมาตรฐานจะเริ่มต้นโดยอัตโนมัติเมื่อระบบปฏิบัติการบู๊ต ตัวแปรดังกล่าว ได้แก่ WINDIR ซึ่งกำหนดตำแหน่งของไดเรกทอรี Windows TEMP ซึ่งกำหนดเส้นทางไปยังไดเรกทอรีสำหรับจัดเก็บไฟล์ Windows ชั่วคราว หรือ PATH ซึ่งจัดเก็บเส้นทางของระบบ (เส้นทางการค้นหา) นั่นคือ รายการไดเร็กทอรีที่ระบบควรค้นหาไฟล์ปฏิบัติการหรือไฟล์ที่แชร์ (เช่น ไลบรารีแบบไดนามิก) คุณยังสามารถประกาศตัวแปรสภาพแวดล้อมของคุณเองเป็นไฟล์แบตช์ได้โดยใช้คำสั่ง SET
รับค่าของตัวแปร
หากต้องการรับค่าของตัวแปรสภาพแวดล้อมเฉพาะ คุณต้องใส่ชื่อของตัวแปรนั้นด้วยอักขระ % ตัวอย่างเช่น:
@ECHO OFF CLS REM สร้างตัวแปร MyVar SET MyVar=Hello REM เปลี่ยนตัวแปร SET MyVar=%MyVar%! ค่าตัวแปร ECHO MyVar: %MyVar% REM การลบตัวแปร MyVar SET MyVar= ค่าตัวแปร ECHO WinDir: %WinDir%
เมื่อคุณเรียกใช้แบตช์ไฟล์ บรรทัดจะปรากฏบนหน้าจอ
ค่าตัวแปร MyVar: สวัสดี! ค่าตัวแปร WinDir: C:\WINDOWS
การแปลงตัวแปรเป็นสตริง
คุณสามารถจัดการตัวแปรสภาพแวดล้อมในไฟล์แบตช์ได้ด้วยวิธีบางอย่าง ประการแรกการดำเนินการต่อข้อมูล (การติดกาว) สามารถทำได้ ในการดำเนินการนี้คุณเพียงแค่ต้องเขียนค่าของตัวแปรที่เชื่อมต่อไว้ติดกันในคำสั่ง SET ตัวอย่างเช่น,
ชุด A=หนึ่งชุด B=สองชุด C=%A%%B%
หลังจากดำเนินการคำสั่งเหล่านี้ในไฟล์ ค่าของตัวแปร C จะเป็นสตริง "Double" คุณไม่ควรใช้เครื่องหมาย + ในการต่อข้อมูล เนื่องจากจะตีความได้ว่าเป็นสัญลักษณ์เท่านั้น เช่น หลังจากรันไฟล์โดยมีเนื้อหาดังนี้
SET A=หนึ่งชุด B=สอง ชุดC=A+B ตัวแปรECHO C=%C% SET D=%A%+%B% ตัวแปรECHO D=%D%
สองบรรทัดจะปรากฏบนหน้าจอ:
ตัวแปร C=A+B ตัวแปร D=หนึ่ง+สอง
ประการที่สอง คุณสามารถแยกสตริงย่อยออกจากตัวแปรสภาพแวดล้อมได้โดยใช้โครงสร้าง %ชื่อตัวแปร:~n1,n2%โดยที่ตัวเลข n1 กำหนดออฟเซ็ต (จำนวนอักขระที่จะข้าม) จากจุดเริ่มต้น (หาก n1 เป็นค่าบวก) หรือจากจุดสิ้นสุด (หาก n1 เป็นค่าลบ) ของตัวแปรสภาพแวดล้อมที่เกี่ยวข้อง และตัวเลข n2 คือจำนวนอักขระ ที่จะจัดสรร (หาก n2 เป็นบวก) หรือจำนวนอักขระตัวสุดท้ายในตัวแปรที่จะไม่ถูกรวมไว้ในสตริงย่อยที่เลือก (หาก n2 เป็นลบ) หากมีการระบุตัวเลือกลบ -n เพียงตัวเดียว อักขระ n ตัวสุดท้ายจะถูกแยกออกมา ตัวอย่างเช่น หากตัวแปร %DATE% เก็บสตริง "09/21/2007" (การแสดงเชิงสัญลักษณ์ของวันที่ปัจจุบันในการตั้งค่าภูมิภาคบางอย่าง) จากนั้นหลังจากดำเนินการคำสั่งต่อไปนี้
SET dd1=%DATE:~0.2% SET dd2=%DATE:~0.-8% SET mm=%DATE:~-7.2% SET yyyy=%DATE:~-4%
ตัวแปรใหม่จะมีค่าดังต่อไปนี้: %dd1%=21, %dd2%=21, %mm%=09, %ปปปป%=2007.
ประการที่สาม คุณสามารถดำเนินการขั้นตอนการเปลี่ยนสตริงย่อยได้โดยใช้โครงสร้าง %ตัวแปร_ชื่อ:s1=s2%(สิ่งนี้จะส่งคืนสตริงพร้อมกับสตริงย่อยทุกครั้ง s1 ในตัวแปรสภาพแวดล้อมที่เกี่ยวข้องแทนที่ด้วย s2 ) เช่น หลังจากดำเนินการตามคำสั่งแล้ว
SET a=123456 SET b=%a:23=99%
ตัวแปร b จะเก็บสตริง "199456" หากไม่ได้ระบุพารามิเตอร์ s2 สตริงย่อย s1 จะถูกลบออกจากสตริงเอาต์พุต กล่าวคือ หลังจากดำเนินการคำสั่ง
เซต ก=123456 เซต ข=%a:23=%
ตัวแปร b จะเก็บสตริง "1456"
การดำเนินการกับตัวแปรเช่นเดียวกับตัวเลข
เมื่อเปิดใช้งานการประมวลผลคำสั่งขั้นสูง (โหมดเริ่มต้นใน Windows XP) คุณสามารถถือว่าค่าตัวแปรสภาพแวดล้อมเป็นตัวเลขและทำการคำนวณทางคณิตศาสตร์ได้ เมื่อต้องการทำเช่นนี้ ใช้คำสั่ง SET กับสวิตช์ /A นี่คือตัวอย่างของไฟล์แบตช์ add.bat ที่เพิ่มตัวเลขสองตัวที่กำหนดเป็นพารามิเตอร์บรรทัดคำสั่ง และแสดงผลรวมผลลัพธ์บนหน้าจอ:
@ECHO OFF REM ตัวแปร M จะเก็บผลรวม SET /A M=%1+%2 ECHO ผลรวมของ %1 และ %2 เท่ากับ %M% REM ลบตัวแปร M SET M=
การเปลี่ยนแปลงตัวแปรท้องถิ่น
การเปลี่ยนแปลงใดๆ ที่คุณทำกับตัวแปรสภาพแวดล้อมในไฟล์คำสั่งโดยใช้คำสั่ง SET จะยังคงอยู่หลังจากไฟล์ออก แต่จะมีผลเฉพาะภายในหน้าต่างคำสั่งปัจจุบันเท่านั้น นอกจากนี้ยังสามารถแปลการเปลี่ยนแปลงตัวแปรสภาพแวดล้อมภายในแบตช์ไฟล์ได้ กล่าวคือ เพื่อกู้คืนค่าของตัวแปรทั้งหมดโดยอัตโนมัติเหมือนก่อนที่จะเปิดตัวไฟล์ มีการใช้คำสั่งสองคำสั่งสำหรับสิ่งนี้: SETLOCAL และ ENDLOCAL คำสั่ง SETLOCAL ระบุจุดเริ่มต้นของพื้นที่การตั้งค่าตัวแปรสภาพแวดล้อมโลคัล กล่าวอีกนัยหนึ่ง การเปลี่ยนแปลงสภาพแวดล้อมที่เกิดขึ้นหลังจากการรัน SETLOCAL จะถูกบันทึกไว้ในไฟล์แบตช์ปัจจุบัน คำสั่ง SETLOCAL แต่ละคำสั่งต้องมีคำสั่ง ENDLOCAL ที่สอดคล้องกันเพื่อเรียกคืนค่าตัวแปรสภาพแวดล้อมก่อนหน้า การเปลี่ยนแปลงสภาพแวดล้อมที่เกิดขึ้นหลังจากดำเนินการคำสั่ง ENDLOCAL จะไม่อยู่ในไฟล์แบตช์ปัจจุบันอีกต่อไป ค่าก่อนหน้าของพวกเขาจะไม่ถูกเรียกคืนเมื่อดำเนินการไฟล์นี้เสร็จสิ้น
ตัวแปรตั้งค่าสภาพแวดล้อม Cmd.exe พวกเขาไม่เพียงกำหนดพฤติกรรมของเชลล์คำสั่งเท่านั้น แต่ยังกำหนดระบบปฏิบัติการด้วย ตัวแปรควรแบ่งออกเป็นสองประเภท ซึ่งแต่ละประเภทมีคุณสมบัติเฉพาะตัว: ระบบและภายในเครื่อง ประเภทแรกช่วยให้คุณสามารถกำหนดลักษณะการทำงานของสภาพแวดล้อมระบบปฏิบัติการทั่วโลกระหว่างการทำงานได้ ตัวแปรท้องถิ่นตั้งค่ากิจกรรมของสภาพแวดล้อมเฉพาะกับอินสแตนซ์เฉพาะของ Cmd.exe สิ่งนี้จะต้องถูกบันทึกไว้ว่าเป็นข้อแตกต่างที่สำคัญ
เขาพูดถึงตัวแปรระบบคือมีการติดตั้งไว้ล่วงหน้าในระบบปฏิบัติการและสามารถใช้งานได้กับทุกแอปพลิเคชัน หากต้องการเปลี่ยนแปลง คุณต้องมีสิทธิ์การเข้าถึงของผู้ดูแลระบบ แอปพลิเคชันที่พบบ่อยที่สุดคือเพื่อจัดเตรียมงานการเริ่มต้นระบบ เมื่อเหตุการณ์ดังกล่าวเกิดขึ้นกับผู้ใช้รายใดรายหนึ่ง เราสามารถพูดคุยเกี่ยวกับความเป็นไปได้ของการใช้ตัวแปรท้องถิ่นได้
ด้านล่างนี้เป็นรายการคลาสตัวแปรที่มีอยู่ตามความสำคัญของลำดับความสำคัญ (ตามลำดับจากมากไปน้อย):
- ระบบในตัว ต้องเรียกว่าร้ายแรงที่สุดซึ่งต้องได้รับการดูแลเป็นพิเศษระหว่างกระบวนการทำงาน
- ตัวแปรมุมมองระบบที่เกี่ยวข้องกับ HKEY_LOCAL_MACHINE
- ตัวแปรมุมมองท้องถิ่นที่เกี่ยวข้องกับ HKEY_CURRENT_USER
- รายการตัวแปรและสภาพแวดล้อมทั้งหมดที่พบในเอกสาร Autoexec.bat
- รายการตัวแปรและสภาพแวดล้อมทั้งหมดที่พบในสคริปต์เริ่มต้นระบบ ในบางสถานการณ์อาจไม่มีอยู่จริง
- ตัวแปรที่ใช้เชิงโต้ตอบสำหรับสคริปต์ที่เป็นลายลักษณ์อักษรหรือเอกสารชุด
มีรายการตัวแปรค่อนข้างยาวที่อยู่ในหมวดหมู่ภายในเครื่องหรือระบบ จำเป็นต้องให้ความสนใจมากขึ้นกับปัญหานี้
ตัวแปรท้องถิ่น
ชื่อ | ข้อมูล |
---|---|
%โปรไฟล์ผู้ใช้ทั้งหมด% |
ให้ข้อมูลว่าโปรไฟล์ผู้ใช้ทั้งหมดอยู่ที่ใด |
ระบุตำแหน่งเริ่มต้นของโปรแกรม |
|
ช่วยให้คุณได้รับเส้นทางไปยังโฟลเดอร์ที่คุณใช้ |
|
จัดเตรียมบรรทัดคำสั่งที่ใช้ในการเรียกใช้อินสแตนซ์ปัจจุบันของ Cmd.exe |
|
ระบุชื่อของตัวควบคุมโดเมนที่กำลังตรวจสอบเซสชันที่ระบุ |
|
ช่วยให้คุณสามารถระบุพารามิเตอร์ KA สำหรับล่ามปัจจุบัน หากต้องการเข้าถึง คุณต้องใช้ Cmd.exe |
|
ระบุชื่อของโดเมนที่มีรายการบัญชีผู้ใช้ |
|
ระบุชื่อผู้ใช้ที่เข้าสู่ระบบ |
|
ส่งกลับตำแหน่งบัญชีสำหรับผู้ใช้ปัจจุบัน |
ตัวแปรของระบบ
อนุญาตให้คุณระบุหมายเลขเวอร์ชันของส่วนขยายตัวประมวลผลคำสั่งปัจจุบัน |
|
ระบุชื่ออุปกรณ์ที่กำลังดำเนินการอยู่ |
|
ส่งคืนพาธไปยังเชลล์คำสั่งที่ปฏิบัติการได้ |
|
ให้ข้อมูลที่ถูกต้อง ควรสังเกตว่ามีวัตถุประสงค์เพื่อใช้รูปแบบที่คล้ายคลึงกับ date /t ข้อมูลทั้งหมดเกี่ยวกับคำสั่งที่ระบุสามารถรับได้โดยตรงจากส่วนที่เกี่ยวข้องบนเว็บไซต์ |
|
ใช้เพื่อระบุรหัสข้อผิดพลาดของคำสั่งสุดท้ายที่ใช้ สถานการณ์มาตรฐานเกี่ยวข้องกับการมีค่าที่แตกต่างจากศูนย์ |
|
ระบุชื่อของดิสก์เวิร์กสเตชันที่เชื่อมโยงกับไดเร็กทอรีของผู้ใช้ จำเป็นต้องติดตั้งตามตำแหน่งของไดเร็กทอรีหลัก |
|
จัดเตรียมเส้นทางไปยังไดเร็กทอรีหลักของผู้ใช้ ควรติดตั้งตามข้อมูลเกี่ยวกับตำแหน่งของไดเร็กทอรีหลัก |
|
จัดเตรียมเส้นทางไปยังไดเร็กทอรีหลักทั่วไปของผู้ใช้ ควรติดตั้งตามข้อมูลเกี่ยวกับตำแหน่งของไดเร็กทอรีหลัก |
|
%NUMBER_OF_PROCESSORS% |
กำหนดจำนวนโปรเซสเซอร์ที่อุปกรณ์เฉพาะมี |
ส่งข้อมูลเกี่ยวกับชื่อระบบปฏิบัติการที่มีบนอุปกรณ์เฉพาะ มีคุณสมบัติบางอย่างในการแสดงชื่อของระบบปฏิบัติการบางประเภทและจะต้องนำมาพิจารณาด้วย |
|
กำหนดเส้นทางการค้นหาสำหรับการตรวจจับโปรแกรม |
|
แสดงรายการส่วนขยายเอกสารที่ระบบปฏิบัติการพิจารณาว่าสามารถเรียกใช้งานได้ |
|
%PROCESSOR_สถาปัตยกรรม% |
ใช้ในกรณีที่จำเป็นต้องได้รับสถาปัตยกรรมของโปรเซสเซอร์เฉพาะ |
%PROCESSOR_IDENTFIER% |
ให้ข้อมูลสั้นๆ เกี่ยวกับโปรเซสเซอร์ |
%PROCESSOR_LEVEL% |
ให้ข้อมูลเกี่ยวกับหมายเลขการแก้ไขโปรเซสเซอร์ |
ระบุจำนวนเต็มใดๆ ในช่วง 0-32767 รวม |
|
ระบุชื่อของดิสก์ที่บันทึกไดเร็กทอรีรากของ Windows XP |
|
ระบุตำแหน่งของไดเร็กทอรีระบบ OS |
|
ตัวแปรเหล่านี้คือระบบและผู้ใช้ สิ่งนี้ทำให้คุณสามารถทำงานเดียวกันในสถานการณ์ที่แตกต่างกันได้ จัดเตรียมโฟลเดอร์ชั่วคราวที่ผู้ใช้ทุกคนสามารถใช้ได้ สำหรับบางโปรแกรม คุณต้องใช้ TEMP หรือ TMP |
|
ให้ข้อมูลเกี่ยวกับเวลาปัจจุบัน ใช้รูปแบบการแสดงผลที่คล้ายกันกับ time /t |
|
ช่วยให้คุณส่งคืนไดเร็กทอรี OS |
การตั้งค่าตัวแปรสภาพแวดล้อม
หากต้องการสร้าง ลบ หรือเปิดเผยตัวแปรสภาพแวดล้อม คุณต้องใช้คำสั่งชุดพิเศษ คุณลักษณะที่โดดเด่นคือการปรับตัวแปรเฉพาะในสภาพแวดล้อมของเชลล์ปฏิบัติการ
หากต้องการออกตัวแปรเฉพาะ ให้เขียนใน CS:
ตั้งค่าตัวแปร_ชื่อ
การเพิ่มตัวแปรอื่นทำได้โดยการเขียน:
ตั้งค่าชื่อตัวแปร=ค่า
ในการดำเนินการขั้นตอนการลบ คุณควรเขียนบรรทัด:
ตั้งค่าตัวแปร_ชื่อ=
ระบบระบุการใช้สัญลักษณ์ที่มีอยู่ส่วนใหญ่เพื่อใช้เป็นค่า Prodels สามารถรวมไว้ได้ที่นี่ หากต้องการใช้อักขระบางตัว คุณต้องป้อน (^) หรือใส่เครื่องหมายคำพูดก่อน การไม่ทำเช่นนั้นอาจส่งผลให้เกิดการดำเนินการที่ไม่ถูกต้องหรือข้อผิดพลาด เราต้องดูตัวอย่างง่ายๆ สองสามตัวอย่าง สมมติว่าเราจำเป็นต้องสร้างตัวแปร&ชื่อใหม่ เพื่อให้งานสำเร็จ จะมีการป้อนสิ่งต่อไปนี้ลงใน CS:
ตั้ง varname=new^&name
คุณสามารถพยายามไม่ใช้อักขระพิเศษ (^) ได้ แต่จะเป็นไปไม่ได้ เหตุผลก็คือมันยังคงให้ข้อผิดพลาดเดิมอยู่
เมื่อตั้งค่าตัวแปรแล้ว ไม่ว่าจะใช้ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กก็ตาม กรณีจะไม่นำมาพิจารณา มีคุณสมบัติที่โดดเด่นอย่างหนึ่ง - ตัวแปรจะยังคงแสดงตรงตามที่ป้อนไว้ทุกประการ วิธีนี้ช่วยให้เข้าใจได้ง่ายขึ้นหากคุณใช้รีจิสเตอร์ที่แตกต่างกันเพื่อแยกความแตกต่างเมื่อเขียนชื่อ
การทดแทนตัวแปรสภาพแวดล้อม
มีวิธีดำเนินการทดแทนค่าบางค่าลงในตัวแปรสภาพแวดล้อมได้โดยตรงจาก CS หรือสคริปต์ เพื่อดำเนินงานนี้ ขอแนะนำให้ใช้สัญลักษณ์เปอร์เซ็นต์ ดูเหมือนว่านี้:
%ตัวแปร_ชื่อ%
มีจุดมุ่งหมายเพื่อระบุข้อเท็จจริงที่ว่า Cmd.exe ต้องเข้าถึงค่าของตัวแปรเฉพาะโดยตรง ขั้นตอนการเปรียบเทียบอักขระต่ออักขระจะไม่ได้รับการดำเนินการ สิ่งสำคัญคือต้องพิจารณาข้อเท็จจริงที่ว่าการทดแทนนั้นไม่ถือเป็นการเรียกซ้ำ การตรวจสอบจะดำเนินการเพียงครั้งเดียว