5 คำสั่ง IF ที่จะใช้สำหรับ Windows Batch Scripts ที่ฉลาดขึ้น

5 คำสั่ง IF ที่จะใช้สำหรับ Windows Batch Scripts ที่ฉลาดขึ้น

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





ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับคำสั่ง IF หลักห้าประเภทที่คุณสามารถใช้ในแบตช์ไฟล์ของ Windows ลักษณะของไวยากรณ์ที่ถูกต้อง และตัวอย่างที่เหมือนจริงสำหรับแต่ละรายการ





หากคุณพร้อมที่จะเริ่มเขียนสคริปต์แล้ว มาเริ่มกันเลย!





1. เปรียบเทียบค่า

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

ตัวอย่างเช่น สมมติว่าคุณต้องการเขียนแบทช์สคริปต์ที่ตรวจสอบขนาดฮาร์ดไดรฟ์ของคอมพิวเตอร์ของคุณทุกวัน หากต่ำกว่า 3 GB คุณต้องการรับรายงานอีเมลที่ระบุว่า 'เนื้อที่ฮาร์ดไดรฟ์เหลือน้อย'



ในการสร้างสคริปต์ที่เปรียบเทียบพื้นที่ว่างในฮาร์ดไดรฟ์ปัจจุบันกับขีดจำกัดของคุณ คุณจะต้องสร้างชุดสคริปต์ต่อไปนี้และบันทึกเป็นไฟล์ .bat

@echo off
set DriveLimit=300000000
for /f 'usebackq delims== tokens=2' %%x in (`wmic logicaldisk where 'DeviceID='C:'' get FreeSpace /format:value`) do set FreeSpace=%%x
Echo FreeSpace='%FreeSpace%'
Echo Limit='%DriveLimit%'
If %FreeSpace% GTR %DriveLimit% (
Echo There is enough free space.
) else (
Echo Not enough free space.
)

WMIC เป็นส่วนประกอบ Windows Management Instrumentation ของ Windows ที่มาพร้อมกับชุดคำสั่งต่างๆ ที่คุณสามารถใช้เพื่อดึงข้อมูลพีซี นี่คือวิธีที่คำสั่ง 'wmic' ในสคริปต์นี้เรียกพื้นที่ 'logicaldisk' และวางไว้ในตัวแปร FreeSpace ตอนนี้คุณสามารถแทนที่บรรทัด 'Echo พื้นที่ว่างไม่เพียงพอ' ด้วยคำสั่งอีเมล blat เพื่อส่งการแจ้งเตือนถึงคุณ





สุดท้าย ตั้งค่าสคริปต์นี้เป็นงานแบตช์ที่กำหนดเวลาไว้ของ windows ซึ่งทำงานทุกวัน

หากคุณไม่เคยใช้ blat มาก่อน เรามีบทความที่แสดงวิธีตั้งค่า blat ไม่คุ้นเคยกับการตั้งค่างานที่กำหนดเวลาไว้? เรามีบทความเกี่ยวกับวิธีตั้งค่างานที่กำหนดเวลาไว้ของ Windows ไว้ให้คุณแล้ว





2. การเปรียบเทียบสตริง

การเปรียบเทียบ IF ที่มีค่าอีกอย่างที่คุณสามารถทำได้ในงานแบทช์คือ การเปรียบเทียบสตริง .

ในตัวอย่างต่อไปนี้ คุณจะเห็นวิธีตรวจสอบเวอร์ชัน Windows ของคุณโดยใช้ชุดงาน จากนั้นคุณสามารถเปรียบเทียบสิ่งนี้กับเวอร์ชัน Windows ที่คุณคาดหวัง

การใช้งานสคริปต์นี้บางส่วนจะใช้สำหรับการตรวจสอบด้าน IT เมื่อคุณต้องการเรียกใช้สคริปต์อย่างรวดเร็ว และตรวจสอบให้แน่ใจว่าระบบปฏิบัติการปัจจุบันเป็นเวอร์ชันล่าสุด หรือจำเป็นต้องอัปเกรดหรือไม่

นี่คือลักษณะของสคริปต์นี้

@echo off
for /f 'tokens=4-5 delims=. ' %%i in ('ver') do set VERSION=%%i.%%j
if '%version%' == '6.0' echo Windows Vista.
if '%version%' == '6.1' echo Windows 7
if '%version%' == '6.2' echo Windows 8
if '%version%' == '6.3' echo Windows 8.1
if '%version%' == '10.0' echo Windows 10.

นี่คือผลลัพธ์ของสคริปต์นี้

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

3. ตรวจสอบว่ามีไฟล์อยู่หรือไม่

สถานการณ์ที่เป็นประโยชน์อีกอย่างหนึ่งที่คำสั่ง IF ในแบตช์ไฟล์คือto ตรวจสอบการมีอยู่ของไฟล์ข้อมูล .

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

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

(เราเคยเขียนไว้ว่า How to ใช้สคริปต์ Windows เพื่อประมวลผลข้อมูลไปยังไฟล์ Excel ; การอ่านพื้นหลังที่ดีบางอย่าง)

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

@echo off
if exist c: empdatafile.txt (
%WINDIR%SysWOW64cmd.exe
cscript LoadToExcel.vbs
) else (
rem file doesn't exist
)

การเปรียบเทียบ IF EXISTS มีประโยชน์หลายอย่าง

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

4. ตรวจสอบว่าคำสั่งล้มเหลวหรือไม่

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

มีงานแบทช์จำนวนมากที่กำลังทำงานด้านไอทีที่สำคัญ เช่น สำรองไฟล์สำคัญหรือดำเนินการคัดลอกไฟล์ เมื่องานแบทช์เหล่านี้ล้มเหลว ระบบล้มเหลวและผู้คนสังเกตเห็น

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

คุณสามารถทำได้โดยใช้ตัวแปร %errorlevel% ที่แอปพลิเคชันและคำสั่งส่วนใหญ่ส่งคืนหลังจากรัน

สิ่งที่คุณต้องทำคือทำตามคำสั่งของคุณด้วยคำสั่ง IF %ERRORLEVEL% หากแอปพลิเคชันหรือคำสั่งคืนค่าศูนย์ ทุกอย่างก็เรียบร้อย ถ้าไม่เช่นนั้น คุณต้องส่งอีเมลถึงตัวเอง

@echo off
xcopy C:
omefolder E:ackupfolder
IF %ERRORLEVEL% NEQ 0

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

หากคุณต้องการใช้คำสั่ง IF เพื่อตรวจสอบรหัสข้อผิดพลาดเฉพาะ Windows ขอเสนอตัวเลือก รายการรหัสข้อผิดพลาดมากมาย .

5. ตรวจสอบพารามิเตอร์ที่ขาดหายไป

คำสั่ง IF ที่มีประโยชน์ล่าสุดไม่ใช่คำสั่งเฉพาะ แต่ให้ตรวจสอบว่า script ได้รับพารามิเตอร์อินพุตที่เหมาะสม .

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

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

นี่คือลักษณะที่ปรากฏ

@echo off
IF [%1]==[] (
GOTO sub_message
) ELSE (
xcopy %1 E:ackupfolder
)
GOTO eof
:sub_message
echo You forgot to specify your path.
:eof

หากคุณไม่เคยใช้พารามิเตอร์กับแบทช์สคริปต์มาก่อน สัญลักษณ์เปอร์เซ็นต์ตามด้วยตัวเลขจะแทนตัวแปรพารามิเตอร์ %1 คือพารามิเตอร์แรก %2 คือพารามิเตอร์ที่สอง และอื่นๆ

งานแบทช์สามารถมีประสิทธิภาพ

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

แน่นอนถ้าคุณต้องการก้าวไปอีกขั้น คุณอาจลองพิจารณา VBA พร้อมคำแนะนำของเราใน การสร้างแอปพลิเคชัน VBA แรกของคุณ หรือแม้แต่เรียนรู้การเขียนโปรแกรม Python

คุณสามารถใช้ภาษาการเขียนโปรแกรมขั้นสูงเช่นนี้ได้บ่อยครั้ง หรือเรียนรู้การใช้ PowerShell เพื่อทำงานหลายอย่างเดียวกันกับที่คุณใช้งานแบทช์ในปัจจุบันให้สำเร็จ

แบ่งปัน แบ่งปัน ทวีต อีเมล ลบไฟล์และโฟลเดอร์ Windows เหล่านี้เพื่อเพิ่มพื้นที่ว่างในดิสก์

ต้องการล้างพื้นที่ดิสก์บนคอมพิวเตอร์ Windows ของคุณหรือไม่? ต่อไปนี้คือไฟล์และโฟลเดอร์ Windows ที่สามารถลบออกได้อย่างปลอดภัยเพื่อเพิ่มพื้นที่ว่างในดิสก์

อ่านต่อไป
หัวข้อที่เกี่ยวข้อง
  • Windows
  • การเขียนโปรแกรม
  • Windows
เกี่ยวกับผู้เขียน Ryan Dube(เผยแพร่บทความ 942 ฉบับ)

Ryan สำเร็จการศึกษาระดับปริญญาตรีสาขาวิศวกรรมไฟฟ้า เขาทำงาน 13 ปีในด้านวิศวกรรมระบบอัตโนมัติ 5 ปีในด้านไอที และปัจจุบันเป็นวิศวกรด้านแอป อดีตผู้จัดการบรรณาธิการของ MakeUseOf เขาพูดในการประชุมระดับชาติเรื่อง Data Visualization และได้รับการนำเสนอในโทรทัศน์และวิทยุแห่งชาติ

วิธีรีสตาร์ท macbook pro เมื่อถูกแช่แข็ง
เพิ่มเติมจาก Ryan Dube

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก