SETจะตั้งค่าตัวแปรสภาพแวดล้อมทั่วโลก มันจะยังคงมีอยู่หลังจากการดำเนินการของสคริปต์ของคุณ
ลองมาดูตัวอย่าง
ก่อนอื่นฉันลบตัวแปรเพื่อให้แน่ใจว่าไม่มีอยู่
C:\Users\Oliver\Desktop>set TEST=
การทดสอบอย่างรวดเร็ว:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
มาสร้างแบทช์ไฟล์นั้นขึ้นมาและรันมัน:
C:\Users\Oliver\Desktop>echo set TEST=something>test.bat
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>set TEST=something
เรามาดูค่าของการทดสอบหลังจากการทำงานของ.batไฟล์ของฉัน:
C:\Users\Oliver\Desktop>echo %TEST%
something
ดังนั้นการล้างตัวแปรในตอนท้ายของสคริปต์จึงเป็นแนวปฏิบัติที่ดี
ยิ่งไปกว่านั้นคือการใช้SETLOCALและENDLOCALหลีกเลี่ยงปัญหาทั้งหมด
ที่นี่ฉันสร้าง.batไฟล์ใหม่ที่ใช้SETLOCALและENDLOCAL:
C:\Users\Oliver\Desktop>type test.bat
setlocal
set TEST=something
endlocal
ให้ชัดเจนTESTและสะท้อนเพื่อให้แน่ใจว่าเราเริ่มทำความสะอาด:
C:\Users\Oliver\Desktop>set TEST=
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
เยี่ยมมากตอนนี้มารันใหม่.batกันดีกว่า:
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>setlocal
C:\Users\Oliver\Desktop>set TEST=something
C:\Users\Oliver\Desktop>endlocal
ตอนนี้TESTจะยังว่างอยู่:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%