ค่ารีจิสทรีเป็นตัวแปร cmd คุณสมบัติและฟังก์ชันของ CMD-BAT

02/12/58 21.1K

เหตุใดจึงมีความวุ่นวายในโลกนี้? ใช่ เพราะผู้ดูแลระบบของเราลืมที่จะปฏิบัติหน้าที่ของตน หรือเพิ่งสูญเสียไป รายการคำสั่งคำสั่งจากโลกของเรา แม้ว่านี่จะเป็นมุมมองดั้งเดิมของลำดับสิ่งต่าง ๆ ที่มีอยู่ แต่ก็สะท้อนให้เห็นส่วนหนึ่งของความจริงที่เราต้องการ: ด้วยความช่วยเหลือ บรรทัดคำสั่งคุณสามารถทำความสะอาดคอมพิวเตอร์ของคุณได้อย่างง่ายดาย:

บรรทัดคำสั่งคืออะไร

บรรทัดคำสั่งเป็นเครื่องมือที่ง่ายที่สุดในการจัดการระบบปฏิบัติการของคอมพิวเตอร์ของคุณ การควบคุมเกิดขึ้นโดยใช้คำสั่งและชุดอักขระที่สงวนไว้จำนวนหนึ่ง แป้นพิมพ์ข้อความโดยไม่ต้องใช้เมาส์ ( ในระบบปฏิบัติการ Windows).

ในระบบเปิดอยู่ ใช้ระบบปฏิบัติการยูนิกซ์เมื่อทำงานกับบรรทัดคำสั่งคุณสามารถใช้เมาส์ได้

คำสั่งบางคำสั่งมาถึงเราจาก MS-DOS บรรทัดคำสั่งเรียกอีกอย่างว่าคอนโซล มันถูกใช้ไม่เพียงแต่สำหรับการบริหารเท่านั้น ระบบปฏิบัติการแต่สำหรับการจัดการด้วย โปรแกรมปกติ- โดยส่วนใหญ่ คำสั่งที่ไม่ค่อยได้ใช้บ่อยที่สุดจะรวมอยู่ในชุดคำสั่งนี้

ข้อดีของการใช้คำสั่งพื้นฐาน cmd คือใช้ทรัพยากรระบบเพียงเล็กน้อย และนี่เป็นสิ่งสำคัญในกรณีฉุกเฉินเมื่อพลังทั้งหมดของคอมพิวเตอร์เกี่ยวข้องไม่ทางใดก็ทางหนึ่ง

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

เชลล์คำสั่ง Windows สำหรับจัดการและเปลี่ยนเส้นทางคำสั่งไปยังยูทิลิตี้และเครื่องมือของระบบปฏิบัติการบางอย่างคือล่าม Cmd.exe โดยจะโหลดคอนโซลและเปลี่ยนเส้นทางคำสั่งในรูปแบบที่ระบบเข้าใจ

การทำงานกับบรรทัดคำสั่งในระบบปฏิบัติการ Windows

คุณสามารถเรียกคอนโซลใน Windows ได้หลายวิธี:


ทั้งสองวิธีเกี่ยวข้องกับการเรียกใช้คอนโซลในฐานะผู้ใช้ปัจจุบัน นั่นคือด้วยสิทธิ์และข้อจำกัดทั้งหมดที่กำหนดให้กับบทบาทในระบบปฏิบัติการ หากต้องการเรียกใช้ cmd ด้วยสิทธิ์ของผู้ดูแลระบบคุณต้องเลือกไอคอนโปรแกรมในเมนู Start และใน เมนูบริบทเลือกรายการที่เหมาะสม:


หลังจากรันยูทิลิตี้แล้วคุณจะได้รับ ข้อมูลความเป็นมาเกี่ยวกับคำสั่งและรูปแบบการเขียนลงในคอนโซล หากต้องการทำสิ่งนี้ ให้ป้อนคำสั่งช่วยเหลือแล้วกด "Enter":

คำสั่งพื้นฐานสำหรับการทำงานกับไฟล์และไดเร็กทอรี

คำสั่งที่ใช้บ่อยที่สุดคือ:

  • RENAME – เปลี่ยนชื่อไดเร็กทอรีและไฟล์ ไวยากรณ์คำสั่ง:

เปลี่ยนชื่อ | REN [ไดรฟ์/พาธ] ชื่อไฟล์/ไดเร็กทอรีต้นฉบับ | ชื่อไฟล์สุดท้าย
ตัวอย่าง: เปลี่ยนชื่อ C: UsershomeDesktoptost.txt test.txt

  • DEL (ERASE) – ใช้เพื่อลบไฟล์เท่านั้น ไม่ใช่ไดเร็กทอรี ไวยากรณ์ของมันคือ:

เดล | ลบ [วิธีการประมวลผล] [ชื่อไฟล์]
ตัวอย่าง: เดล C:UsershomeDesktoptest.txt/P

โดยวิธีการประมวลผล เราหมายถึงแฟล็กพิเศษที่ช่วยให้คุณสามารถใช้เงื่อนไขบางอย่างเมื่อลบไฟล์ ในตัวอย่างของเรา ธง "P" ช่วยให้สามารถแสดงกล่องโต้ตอบการอนุญาตสำหรับการลบแต่ละไฟล์:


รายละเอียดเพิ่มเติมเกี่ยวกับค่าที่เป็นไปได้ของพารามิเตอร์ "วิธีการประมวลผล" สามารถพบได้ใน เอกสารทางเทคนิคบนระบบปฏิบัติการ Windows

MD [ไดรฟ์:] [เส้นทาง]
ตัวอย่าง:
MD C: UsershomeDesktoptest1test2

ตัวอย่างจะสร้างโฟลเดอร์ย่อย test2 ภายในโฟลเดอร์ test1 หากไม่มีโฟลเดอร์รากของเส้นทางโฟลเดอร์ใดโฟลเดอร์หนึ่ง โฟลเดอร์นั้นจะถูกสร้างขึ้นด้วย:

  • ถ. ( RMDIR) – การลบ โฟลเดอร์เฉพาะหรือไดเร็กทอรีทั้งหมดในพาธที่ระบุ ไวยากรณ์:

ถ. | RMDIR [process_key] [ไดรฟ์/เส้นทาง]
ตัวอย่าง:
rmdir /s C:UsershomeDesktoptest1test2

ตัวอย่างใช้แฟล็ก s ซึ่งจะทำให้สาขาทั้งหมดของไดเร็กทอรีที่ระบุในพาธถูกลบ จึงไม่ควรใช้โดยไม่จำเป็น คำสั่ง rmdirด้วยคีย์การประมวลผลนี้

ในส่วนถัดไป เราจะมาดูคำสั่งเครือข่าย cmd อย่างละเอียดยิ่งขึ้น

คำสั่งสำหรับการทำงานกับเครือข่าย

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

ping [-t] [-a] [-n ตัวนับ] [-l ขนาด] [-f] [-i TTL] [-v ประเภท] [-r ตัวนับ] [-s ตัวนับ] [(-j host_list | - k node_list)] [-w ช่วงเวลา] [target_PC_name]

ตัวอย่างการใช้งานคำสั่ง:
ปิง example.microsoft.com
ปิง -w 10,000 192.168.239.132

ในตัวอย่างสุดท้ายของคำสั่ง cmd ping คำขอจะถูกส่งไปยังผู้รับพร้อมที่อยู่ IP ที่ระบุ ช่วงเวลารอระหว่างแพ็กเก็ตคือ 10,000 (10 วินาที) โดยค่าเริ่มต้น พารามิเตอร์นี้ถูกตั้งค่าเป็น 4000:

  • Tracert – ใช้เพื่อกำหนดเส้นทางเครือข่ายไป ทรัพยากรที่ระบุโดยการส่งข้อความเสียงสะท้อนพิเศษผ่านโปรโตคอล
  • ICMP (โปรโตคอลข้อความควบคุม) หลังจากรันคำสั่งพร้อมพารามิเตอร์แล้ว รายการเราเตอร์ทั้งหมดที่ข้อความผ่านจะปรากฏขึ้น องค์ประกอบแรกในรายการคือเราเตอร์ตัวแรกที่ด้านข้างของทรัพยากรที่ร้องขอ

ไวยากรณ์ของคำสั่ง Tracer cmd:
Tracet [-d] [-h maximum_hop_number] [-j node_list] [-w ช่วงเวลา] [target_resource_name]
ตัวอย่างการใช้งาน:
Tracert -d -h 10 microsoft.com

ตัวอย่างติดตามเส้นทางไปยังทรัพยากรที่ระบุ สิ่งนี้จะเพิ่มความเร็วของการดำเนินการเนื่องจากการใช้พารามิเตอร์ d ซึ่งป้องกันไม่ให้คำสั่งพยายามขอรับสิทธิ์ในการอ่านที่อยู่ IP จำนวนการเปลี่ยนภาพ (การกระโดด) จำกัดการใช้อยู่ที่ 10 ครั้ง ตั้งค่าพารามิเตอร์ชั่วโมง ตามค่าเริ่มต้น จำนวนการกระโดดคือ 30:


ปิดเครื่อง [(-l|-s|-r|-a)] [-f] [-m [\PC_name]] [-t xx] [-c “ข้อความ”] [-d[u][p]: xx:ปปป]
ตัวอย่าง:
ปิดเครื่อง /s /t 60 /f /l /m \191.162.1.53

พีซีระยะไกล (m) ที่มีที่อยู่ IP ที่ระบุ (191.162.1.53) จะปิดตัวลงหลังจาก 60 วินาที (t) สิ่งนี้จะบังคับให้คุณออกจากระบบแอปพลิเคชันทั้งหมด (f) และเซสชันของผู้ใช้ปัจจุบัน (l)

ตัวแปรสภาพแวดล้อมที่ใช้ในไฟล์แบตช์ (คำสั่ง) ให้คุณทำได้โดยไม่ต้องระบุ เส้นทางที่แน่นอนไปยังไดเร็กทอรี เช่น ถ้าเราไม่รู้จดหมายล่วงหน้า ดิสก์ระบบเราสามารถใช้ตัวแปรได้ตลอดเวลา %ไดรฟ์ระบบ%ซึ่งส่งคืนอักษรระบุไดรฟ์ที่ติดตั้งระบบปฏิบัติการไว้ นอกจากนี้ ตัวแปรยังใช้ในการปรับโค้ดให้เหมาะสม - พารามิเตอร์ที่ทำซ้ำซ้ำๆ (เช่น รีจิสตรีคีย์) สามารถกำหนดตัวแปรแบบสั้นและนำไปใช้ได้ บทความนี้จะกล่าวถึงในรายละเอียด เทคนิคต่างๆการทำงานกับตัวแปรตลอดจนวิธีการเปลี่ยนแปลงและสร้างตัวแปรใหม่ ตอนนี้เรามาพูดถึงทุกอย่างตามลำดับ

การจำแนกประเภทของตัวแปรสภาพแวดล้อม

ประวัติย่อ

ทีม เปลือกหน้าต่าง(cmd.exe) ค่อนข้างมาก เครื่องมืออันทรงพลังทำงานกับระบบ ไฟล์แบตช์สามารถทำงานอัตโนมัติในจำนวนที่พอเหมาะ ซึ่งเป็นสาเหตุว่าทำไมไฟล์เหล่านี้จึงมักถูกใช้โดยอัตโนมัติ การติดตั้งวินโดวส์- การใช้ตัวแปรอย่างชำนาญในไฟล์แบตช์ช่วยให้คุณสามารถแก้ไขปัญหาได้หลากหลาย การทำงานกับเชลล์คำสั่งจะมีประสิทธิภาพมากขึ้นและในขณะเดียวกันโค้ดของไฟล์แบตช์ก็ง่ายขึ้น คุณสามารถดูตัวอย่างอื่นๆ ของการใช้ตัวแปรได้ที่หน้าเว็บไซต์หรือฟอรั่ม ตัวอย่างทั้งหมดที่ใช้ในบทความนี้นำมาจากสคริปต์ของผู้เข้าร่วมซึ่งต้องขอบคุณพวกเขามาก

คำศัพท์เฉพาะทาง

เชลล์คำสั่ง- นี่แยกจากกัน ผลิตภัณฑ์ซอฟต์แวร์ซึ่งให้การสื่อสารโดยตรงระหว่างผู้ใช้และระบบปฏิบัติการ ข้อความ ส่วนต่อประสานกับผู้ใช้บรรทัดคำสั่งจัดเตรียมสภาพแวดล้อมที่แอปพลิเคชันและ สาธารณูปโภคด้วยส่วนต่อประสานข้อความ

cmd.exe- ตัวแปลคำสั่งที่เชลล์คำสั่ง Windows OS ใช้เพื่อแปลคำสั่งที่ป้อนเป็นรูปแบบที่ระบบเข้าใจ

เซสชั่นของทีมสามารถเริ่มต้นได้โดยการเปิดตัว cmd.exeและเปิดตัว ไฟล์แบตช์- กล่าวอีกนัยหนึ่ง เชลล์คำสั่งปัจจุบันจะถูกสร้างขึ้น ดังนั้น การออกจากเชลล์นี้ (เช่น การจบแบตช์ไฟล์) จะเป็นการสิ้นสุดเซสชันคำสั่ง

เซสชันผู้ใช้(เซสชันผู้ใช้) เริ่มต้นเมื่อผู้ใช้เข้าสู่ระบบ (เข้าสู่ระบบ) และสิ้นสุดเมื่อผู้ใช้ออกจากระบบ (ออกจากระบบ)

ตัวแปรตั้งค่าสภาพแวดล้อม Cmd.exe พวกเขาไม่เพียงกำหนดพฤติกรรมของเชลล์คำสั่งเท่านั้น แต่ยังกำหนดระบบปฏิบัติการด้วย ตัวแปรควรแบ่งออกเป็นสองประเภท ซึ่งแต่ละประเภทมีคุณสมบัติเฉพาะตัว: ระบบและภายในเครื่อง ประเภทแรกให้คุณกำหนดลักษณะการทำงานได้ สิ่งแวดล้อมโลก OS อยู่ในขั้นตอนการทำงาน ตัวแปรท้องถิ่นตั้งค่ากิจกรรมของสภาพแวดล้อมเฉพาะกับอินสแตนซ์เฉพาะของ Cmd.exe สิ่งนี้จะต้องถูกบันทึกไว้ว่าเป็นข้อแตกต่างที่สำคัญ

เขาพูดถึงตัวแปรระบบคือมีการติดตั้งไว้ล่วงหน้าในระบบปฏิบัติการและสามารถใช้งานได้กับทุกแอปพลิเคชัน หากต้องการเปลี่ยนแปลง คุณต้องมีสิทธิ์การเข้าถึงของผู้ดูแลระบบ แอปพลิเคชันที่พบบ่อยที่สุดคือเพื่อจัดเตรียมงานการเริ่มต้นระบบ เมื่อได้มีเหตุการณ์ดังกล่าวเกิดขึ้นแล้ว ผู้ใช้เฉพาะเราสามารถพูดคุยเกี่ยวกับความเป็นไปได้ของการใช้ตัวแปรท้องถิ่น

ด้านล่างนี้เป็นรายการคลาสตัวแปรที่มีอยู่ตามความสำคัญของลำดับความสำคัญ (ตามลำดับจากมากไปน้อย):

  • ระบบในตัว พวกเขาจะต้องเรียกว่าร้ายแรงที่สุดซึ่งมีให้ ความสนใจเป็นพิเศษในกระบวนการทำงาน
  • ตัวแปร ประเภทระบบที่เกี่ยวข้องกับ HKEY_LOCAL_MACHINE
  • ตัวแปร ประเภทท้องถิ่นที่เกี่ยวข้องกับ HKEY_CURRENT_USER
  • รายการเต็มตัวแปรและสภาพแวดล้อมที่พบในเอกสาร Autoexec.bat
  • รายการตัวแปรและสภาพแวดล้อมทั้งหมดที่พบในสคริปต์เริ่มต้นระบบ ในบางสถานการณ์อาจไม่มีอยู่จริง
  • ตัวแปรที่ใช้เชิงโต้ตอบสำหรับสคริปต์ที่เป็นลายลักษณ์อักษรหรือเอกสารชุด

มีรายการตัวแปรค่อนข้างยาวที่อยู่ในหมวดหมู่ภายในเครื่องหรือระบบ จำเป็นต้องให้ความสนใจมากขึ้นกับปัญหานี้

ตัวแปรท้องถิ่น

ชื่อ ข้อมูล

%โปรไฟล์ผู้ใช้ทั้งหมด%

ให้ข้อมูลว่าโปรไฟล์ผู้ใช้ทั้งหมดอยู่ที่ใด

ระบุตำแหน่งเริ่มต้นของโปรแกรม

ช่วยให้คุณได้รับเส้นทางไปยังโฟลเดอร์ที่คุณใช้

จัดเตรียมบรรทัดคำสั่งที่ใช้ในการเรียกใช้อินสแตนซ์ปัจจุบันของ Cmd.exe

ระบุชื่อของตัวควบคุมโดเมนที่กำลังตรวจสอบเซสชันที่ระบุ

ช่วยให้คุณสามารถระบุพารามิเตอร์ KA สำหรับล่ามปัจจุบัน หากต้องการเข้าถึง คุณต้องใช้ Cmd.exe

ระบุชื่อของโดเมนที่มีรายการบัญชีผู้ใช้

ระบุชื่อผู้ใช้ที่เข้าสู่ระบบ

ส่งกลับตำแหน่งบัญชีสำหรับผู้ใช้ปัจจุบัน

ตัวแปรของระบบ

อนุญาตให้คุณระบุหมายเลขเวอร์ชันของส่วนขยายตัวประมวลผลคำสั่งปัจจุบัน

ระบุชื่ออุปกรณ์ที่กำลังดำเนินการอยู่

ส่งกลับเส้นทางไปยังปฏิบัติการ เชลล์คำสั่ง

ให้ข้อมูลที่ถูกต้อง ควรสังเกตว่ามีวัตถุประสงค์เพื่อใช้รูปแบบที่คล้ายคลึงกับ date /t ข้อมูลทั้งหมดเกี่ยวกับคำสั่งที่ระบุสามารถรับได้โดยตรงจากส่วนที่เกี่ยวข้องบนเว็บไซต์

ใช้เพื่อระบุรหัสข้อผิดพลาดของคำสั่งสุดท้ายที่ใช้ สถานการณ์มาตรฐานเกี่ยวข้องกับการมีค่าที่แตกต่างจากศูนย์

แสดงชื่อแผ่นดิสก์ เวิร์กสเตชันซึ่งเชื่อมโยงกับไดเร็กทอรีของผู้ใช้ จำเป็นต้องติดตั้งตามตำแหน่งของไดเร็กทอรีหลัก

จัดเตรียมเส้นทางไปยังไดเร็กทอรีหลักของผู้ใช้ ควรติดตั้งตามข้อมูลเกี่ยวกับตำแหน่งของไดเร็กทอรีหลัก

จัดเตรียมเส้นทางไปยังไดเร็กทอรีหลักทั่วไปของผู้ใช้ ควรติดตั้งตามข้อมูลเกี่ยวกับตำแหน่งของไดเร็กทอรีหลัก

%NUMBER_OF_PROCESSORS%

กำหนดจำนวนโปรเซสเซอร์ที่อุปกรณ์เฉพาะมี

ส่งข้อมูลว่า OS มีชื่ออะไร อุปกรณ์เฉพาะ- มีคุณสมบัติบางอย่างในการแสดงชื่อของระบบปฏิบัติการบางประเภทและจะต้องนำมาพิจารณาด้วย

กำหนดเส้นทางการค้นหาสำหรับการตรวจจับโปรแกรม

แสดงรายการส่วนขยายเอกสารที่ระบบปฏิบัติการพิจารณาว่าสามารถเรียกใช้งานได้

%PROCESSOR_สถาปัตยกรรม%

ใช้ในกรณีที่จำเป็นต้องได้รับสถาปัตยกรรมของโปรเซสเซอร์เฉพาะ

%PROCESSOR_IDENTFIER%

จัดเตรียมให้ ข้อมูลสั้น ๆเกี่ยวกับโปรเซสเซอร์

%PROCESSOR_LEVEL%

ให้ข้อมูลเกี่ยวกับหมายเลขการแก้ไขโปรเซสเซอร์

ระบุจำนวนเต็มใดๆ ในช่วง 0-32767 รวม

ระบุชื่อของดิสก์ที่บันทึกไดเร็กทอรีรากของ Windows XP

จัดให้มีสถานที่ ไดเร็กทอรีระบบระบบปฏิบัติการ

ตัวแปรเหล่านี้คือระบบและผู้ใช้ สิ่งนี้ทำให้คุณสามารถทำงานที่เหมือนกันได้ สถานการณ์ที่แตกต่างกัน- จัดเตรียมโฟลเดอร์ชั่วคราวที่ผู้ใช้ทุกคนสามารถใช้ได้ สำหรับ บางโปรแกรมคุณต้องใช้ TEMP หรือ TMP

ให้ข้อมูลเวลาสำหรับ ในขณะนี้- ใช้รูปแบบการแสดงผลที่คล้ายกันกับ time /t

ช่วยให้คุณส่งคืนไดเร็กทอรี OS

การตั้งค่าตัวแปรสภาพแวดล้อม

คุณต้องใช้เพื่อสร้าง ลบ หรือเปิดเผยตัวแปรสภาพแวดล้อม ทีมพิเศษชุด. คุณลักษณะที่โดดเด่นคือการปรับตัวแปรเฉพาะในสภาพแวดล้อมของเชลล์ปฏิบัติการ

หากต้องการออกตัวแปรเฉพาะ ให้เขียนใน CS:

ตั้งค่าตัวแปร_ชื่อ

การเพิ่มตัวแปรอื่นทำได้โดยการเขียน:

ตั้งค่าชื่อตัวแปร=ค่า

ในการดำเนินการขั้นตอนการลบ คุณควรเขียนบรรทัด:

ตั้งค่าตัวแปร_ชื่อ=

ระบบระบุการใช้สัญลักษณ์ที่มีอยู่ส่วนใหญ่เพื่อใช้เป็นค่า Prodels สามารถรวมไว้ได้ที่นี่ หากต้องการสมัคร อักขระบางตัวคุณต้องป้อน (^) หรือใส่เครื่องหมายคำพูดล้อมรอบก่อน การไม่ทำเช่นนั้นอาจส่งผลให้เกิดการดำเนินการที่ไม่ถูกต้องหรือข้อผิดพลาด จำเป็นต้องพิจารณาหลายประการ ตัวอย่างง่ายๆ- สมมติว่าเราจำเป็นต้องสร้างตัวแปร&ชื่อใหม่ เพื่อให้งานสำเร็จ จะมีการป้อนสิ่งต่อไปนี้ลงใน CS:

ตั้ง varname=new^&name

คุณสามารถพยายามไม่ใช้อักขระพิเศษ (^) ได้ แต่จะเป็นไปไม่ได้ เหตุผลก็คือมันยังคงให้ข้อผิดพลาดเดิมอยู่

เมื่อตั้งค่าตัวแปรแล้ว ไม่ว่าจะใช้ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กก็ตาม กรณีจะไม่นำมาพิจารณา มีอันหนึ่ง คุณสมบัติที่โดดเด่น- ตัวแปรจะยังคงแสดงตรงตามที่ป้อนไว้ทุกประการ วิธีนี้ช่วยให้เข้าใจได้ง่ายขึ้นหากคุณใช้รีจิสเตอร์ที่แตกต่างกันเพื่อแยกความแตกต่างเมื่อเขียนชื่อ

การทดแทนตัวแปรสภาพแวดล้อม

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

%ตัวแปร_ชื่อ%

มีจุดมุ่งหมายเพื่อระบุข้อเท็จจริงที่ว่า Cmd.exe ต้องเข้าถึงค่าของตัวแปรเฉพาะโดยตรง ขั้นตอนการเปรียบเทียบอักขระต่ออักขระจะไม่ได้รับการดำเนินการ สิ่งสำคัญคือต้องพิจารณาข้อเท็จจริงที่ว่าการทดแทนนั้นไม่ถือเป็นการเรียกซ้ำ การตรวจสอบจะดำเนินการเพียงครั้งเดียว

บางครั้งก็จำเป็นต้องสร้าง ตัวแปรวันที่และเวลาวี cmd/batสคริปต์ หน้าต่างในแบบที่เราต้องการ ไม่ใช่วิธีที่ระบบปฏิบัติการมอบให้เรา

เช่น หากต้องการเพิ่มข้อมูลนี้เข้าไป ไฟล์บันทึก,หากต้องการบันทึกเวลาหรือวันที่ของเหตุการณ์, สร้างไฟล์ชื่อที่ควรประกอบด้วยข้อมูลวันที่หรือเวลา (วัน, เดือน, ปี, ชั่วโมง, นาที, วินาที, มิลลิวินาที) คุณไม่มีทางรู้ว่างานของเราคืออะไร... มาใช้จินตนาการของเรากันเถอะ :)

ในตัวอย่างต่อไปนี้ เราจะเห็นการแจกแจงตัวแปรตามรูปแบบที่เราต้องการ

ชั่วโมง- ชั่วโมง 2 หลัก (คือชั่วโมงจะระบุมา) แบบฟอร์มต่อไปนี้ - 01, 02, ..., 09, ... , 12, ... 24)

ม. - นาที 2 ตัวอักษร

s - วินาที 2 สัญญาณ

ms - มิลลิวินาที 2 หลัก ด้วยเหตุผลบางประการตั้งแต่ 0 ถึง 99

dd - สัญญาณวันที่ 2

มม. - เดือน 2 ตัวอักษร

ปปปป - ปี 4 หลัก

ตัวอย่างการใช้ตัวแปร %วันที่%และ %เวลา%ในสคริปต์ คำสั่ง / ค้างคาวหน้าต่าง:

@ปิดเสียงสะท้อน
ตั้งชั่วโมง=%เวลา:~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 ที่มีอยู่สำหรับความต้องการของเราได้

ฉันรู้ตัวแปรต่อไปนี้ซึ่งมีค่าที่เราสามารถรับได้:

ชื่อ
คำอธิบาย
โปรไฟล์ผู้ใช้ทั้งหมด ส่งกลับตำแหน่งของโปรไฟล์ "ผู้ใช้ทั้งหมด"
ข้อมูลแอป ส่งกลับตำแหน่งเริ่มต้นของข้อมูลแอปพลิเคชัน
ซีดี บ่งบอกถึงเส้นทาง โฟลเดอร์ปัจจุบัน- เหมือนกับคำสั่ง 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 การแก้ไขโปรเซสเซอร์
โปรแกรมไฟล์ เส้นทางไป โฟลเดอร์โปรแกรมไฟล์
พร้อมท์ ส่งคืนตัวเลือกบรรทัดคำสั่งสำหรับล่ามปัจจุบัน สร้างโดยคำสั่ง Cmd.exe
สุ่ม สุ่ม เลขทศนิยมตั้งแต่ 0 ถึง 32767 สร้างโดย Cmd.exe
SESSIONNAME ประเภทเซสชัน ค่าเริ่มต้นคือ "คอนโซล"
ไดรฟ์ระบบ ดิสก์ที่มันอยู่ โฟลเดอร์รูทหน้าต่าง
ระบบรูท เส้นทางโฟลเดอร์รูทของ Windows
อุณหภูมิหรือ TMP ส่งคืนโฟลเดอร์ชั่วคราวเริ่มต้นที่ใช้โดยแอปพลิเคชันที่ผู้ใช้ที่เข้าสู่ระบบสามารถเข้าถึงได้ แอปพลิเคชั่นบางตัวต้องการตัวแปร TEMP และแอปพลิเคชั่นบางตัวจำเป็นต้องใช้ตัวแปร TMP TEMP และ TMP อาจชี้ไปยังไดเร็กทอรีที่แตกต่างกัน แต่โดยปกติแล้วจะเหมือนกัน
เวลา ส่งกลับเวลาปัจจุบัน ใช้รูปแบบเดียวกับคำสั่ง time /t สร้างโดยคำสั่ง Cmd.exe
โดเมนผู้ใช้ ชื่อของโดเมนที่ผู้ใช้ปัจจุบันอยู่
ชื่อผู้ใช้ ชื่อผู้ใช้ปัจจุบัน
โปรไฟล์ผู้ใช้ เส้นทางไปยังโปรไฟล์ของผู้ใช้ปัจจุบัน
วินเดียร์ ไดเร็กทอรีที่ติดตั้ง Windows

ภายในไฟล์คำสั่ง คุณสามารถทำงานกับสิ่งที่เรียกว่าตัวแปรสภาพแวดล้อม (หรือ ตัวแปรสภาพแวดล้อม) ซึ่งแต่ละรายการจะถูกเก็บไว้ใน แรมมีชื่อเฉพาะของตัวเอง และค่าของมันคือสตริง ตัวแปรสภาพแวดล้อมมาตรฐานจะเริ่มต้นโดยอัตโนมัติเมื่อระบบปฏิบัติการบู๊ต ตัวแปรดังกล่าว เช่น WINDIR ซึ่งกำหนดตำแหน่ง ไดเร็กทอรีวินโดวส์, 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 จะไม่อยู่ในไฟล์แบตช์ปัจจุบันอีกต่อไป ค่าก่อนหน้าของพวกเขาจะไม่ถูกเรียกคืนเมื่อดำเนินการไฟล์นี้เสร็จสิ้น