สารบัญ:

บทนำสู่สคริปต์ VB: คู่มือสำหรับผู้เริ่มต้นใช้งาน: ส่วนที่ 2: การทำงานกับไฟล์: 13 ขั้นตอน
บทนำสู่สคริปต์ VB: คู่มือสำหรับผู้เริ่มต้นใช้งาน: ส่วนที่ 2: การทำงานกับไฟล์: 13 ขั้นตอน

วีดีโอ: บทนำสู่สคริปต์ VB: คู่มือสำหรับผู้เริ่มต้นใช้งาน: ส่วนที่ 2: การทำงานกับไฟล์: 13 ขั้นตอน

วีดีโอ: บทนำสู่สคริปต์ VB: คู่มือสำหรับผู้เริ่มต้นใช้งาน: ส่วนที่ 2: การทำงานกับไฟล์: 13 ขั้นตอน
วีดีโอ: เขียนโปรแกรมภาษา C# | สำหรับผู้เริ่มต้น [Phase1] 2024, มิถุนายน
Anonim
Intro to VB Script: a Beginners Guide: Part 2: Working with Files
Intro to VB Script: a Beginners Guide: Part 2: Working with Files

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

ขั้นตอนที่ 1: การแก้ไข Bios เพื่อรีบูตเมื่อ Power Fail

การแก้ไข Bios เพื่อรีบูตเมื่อ Power Fail
การแก้ไข Bios เพื่อรีบูตเมื่อ Power Fail

ฉันไม่แน่ใจว่าปัญหาของฉันอยู่ที่แหล่งจ่ายไฟล้มเหลวหรือกับการ์ดแสดงผลของฉันหรือมันคืออะไร แต่ฉันรู้ว่าคอมพิวเตอร์รีบูตบ่อยๆ ดังนั้นเพื่อให้แน่ใจว่าเครื่องจะรีบูตหลังจากไฟดับ (IE: แหล่งจ่ายไฟหมด) ฉันต้องการแก้ไขไบออส เนื่องจากข้อเท็จจริงที่ว่ามีผู้สร้างไบออสที่แตกต่างกันมากมาย มันจึงยากเกินไปที่จะระบุวิธีต่างๆ ในการทำเช่นนี้ในหน้าจอไบออสที่แตกต่างกันทั้งหมด ดังนั้นฉันจะให้พื้นฐานและให้คุณเข้าใจ ข้อมูลเฉพาะของคุณเอง โดยทั่วไปในการเข้าสู่ไบออสของคุณ คุณจะต้องกดปุ่มในการบู๊ต โดยปกติจะมีข้อความว่า "กด Del เพื่อเข้าสู่การตั้งค่า" หรือ "F2" ผู้ผลิตหลายรายให้วิธีการที่แตกต่างกัน แต่โดยปกติแล้วจะเป็นคีย์ "F2" หรือ "Del" ไม่ว่าจะด้วยวิธีใดก็ตาม คอยดูและกดปุ่มที่บอกให้กด ตอนนี้คุณจะมาที่หน้าจอที่ปกติแล้วจะเป็นสีเทาหรือสีน้ำเงิน แต่ขึ้นอยู่กับไบออสของคุณอีกครั้ง คุณจะกำลังมองหาตัวเลือกการตั้งค่าพลังงาน มันจะอยู่บนหน้าต่างของมันเองเหมือนในภาพหน้าจอ AMIBIOS (ยืมมาจากคู่มือฮาร์ดแวร์ของ toms) หรือในบางส่วนอาจอยู่ในหน้าต่างคุณสมบัติ bios ขั้นสูง อย่างไรก็ตาม คุณกำลังมองหาการตั้งค่า "คืนค่าเมื่อไฟดับ/ไฟฟ้าดับ" มันอาจจะชื่ออย่างอื่นแต่มันจะใกล้เคียงกับที่ เพียงแค่มองหามัน โดยปกติจะมีสามตัวเลือก (สถานะสุดท้าย เปิดหลังจากไฟฟ้าดับ ปิดหลังจากไฟฟ้าดับ) คุณต้องการตั้งค่าเป็นเปิดหลังจากไฟฟ้าดับ ตรวจสอบให้แน่ใจว่าคุณบันทึกการตั้งค่าและออกจากไบออส ตอนนี้เมื่อไฟฟ้าดับหรือคุณถอดปลั๊กเครื่อง เครื่องจะรีบูตทันทีที่ได้รับพลังงานกลับมา เย้ๆๆๆ!!!!!!!!!!!!!!!!!!!!

ขั้นตอนที่ 2: การเขียนสคริปต์ ตอนที่ 1: การวางแผน

การเขียนสคริปต์ ตอนที่ 1: การทำแผน
การเขียนสคริปต์ ตอนที่ 1: การทำแผน
การเขียนสคริปต์ ตอนที่ 1: การทำแผน
การเขียนสคริปต์ ตอนที่ 1: การทำแผน
การเขียนสคริปต์ ตอนที่ 1: การทำแผน
การเขียนสคริปต์ ตอนที่ 1: การทำแผน
การเขียนสคริปต์ ตอนที่ 1: การทำแผน
การเขียนสคริปต์ ตอนที่ 1: การทำแผน

สิ่งแรกที่เราต้องการทำคือสร้างแผน เราต้องการให้สคริปต์ทำอะไรกันแน่ A.) เมื่อไฟดับหรือ BSOD ปรากฏขึ้น เราต้องการให้รีบูต (ดูแลในขั้นตอนที่ 1 การแก้ไข BiosB) ทันทีที่รีบูต เราต้องการเขียนวันที่และเวลาที่แน่นอนที่รีบูตลงในไฟล์ลงในไฟล์ C.) เราต้องการจะแก้ไขไฟล์นั้นได้ ถ้ามันรีบูทมากกว่าหนึ่งครั้ง เราจะไม่มีทางรู้เลย D.) เราต้องการให้มีการแก้ไขข้อผิดพลาดเพื่อไม่ให้เกิดข้อผิดพลาดและเราแน่ใจว่าเราได้รับการรีบูตทั้งหมดโดยไม่พลาดเพราะการเข้ารหัสที่ไม่ดี E.) เราต้องการมัน เพื่อแสดงข้อความว่ารีบูตแล้ว F.) เราต้องการให้เปิดไฟล์ที่เราเขียนถึงเพื่อให้เราสามารถเห็นรายการการรีบูตทั้งหมดเมื่อเราคลิกตกลงบนข้อความที่ปรากฏขึ้น

ขั้นตอนที่ 3: การเขียนสคริปต์ ตอนที่ 2: การสร้างสคริปต์และการกำหนดตัวแปร

การเขียนสคริปต์ตอนที่ 2: การสร้างสคริปต์และการกำหนดตัวแปร
การเขียนสคริปต์ตอนที่ 2: การสร้างสคริปต์และการกำหนดตัวแปร

ก่อนอื่น ให้สร้างเอกสารข้อความและเปลี่ยนชื่อเป็น any_name.vbs ฉันใช้ shutdown_catcher.vbs แต่คุณสามารถใช้อะไรก็ได้ ตอนนี้เพียงแค่คลิกขวาที่ไฟล์ vbs แล้วกดแก้ไข หากคุณใช้ notepad++ ตอนนี้เป็นเวลาที่ดีที่จะเปิดมัน ถ้าคุณไม่ แต่วางแผนที่จะทำการเข้ารหัสให้คุณ ควรดูในการรับมัน ตกลงตอนนี้สิ่งแรกที่เราต้องการทำคือสร้างตัวแปร โดยพื้นฐานแล้ว ตัวแปรเป็นเพียงตัวยึดตำแหน่ง ดังนั้นเราจึงไม่ต้องเขียนหลาย ๆ อันหลายครั้ง ตัวอย่าง: เรามีประโยคที่บอกว่า "จิ้งจอกสีน้ำตาลเร็วกระโดดข้ามสุนัขขี้เกียจกลับ" แต่มันอยู่ในรหัสของเรา 20 ครั้ง เราสามารถพิมพ์ทั้งประโยค 20 ครั้งหรือสร้างตัวแปรและกำหนดประโยคให้กับตัวแปรนั้น ดังนั้นในตัวอย่างนี้ เราจึงสร้างตัวแปร strSentence แล้วกำหนด "สุนัขจิ้งจอกสีน้ำตาลเร็วกระโดดข้ามสุนัขขี้เกียจกลับ" ให้กับตัวแปรนั้น ตอนนี้สิ่งที่เราต้องทำคือพิมพ์ strSentence ทุกครั้งที่เราต้องการประโยคและรู้ว่าต้องพิมพ์ "สุนัขจิ้งจอกสีน้ำตาลเร็วกระโดดข้ามสุนัขขี้เกียจกลับ" เราจะทำอย่างไร: หากเรามีตัวแปรประเภทเดียวกันหลายตัวเราสามารถใส่ได้ ให้อยู่ในบรรทัดเดียวกันและแยกตัวแปรด้วยเครื่องหมายจุลภาค ในการสร้างตัวแปรเราต้องทำสิ่งที่เรียกว่าการวัดขนาดตัวแปร เมื่อต้องการทำสิ่งนี้ เราพิมพ์ Dim ก่อนตัวแปร จากนั้นเราใส่คำนำหน้าให้กับตัวแปร เพื่อให้เรารู้ว่าตัวแปรนั้นหมายถึงอะไร ตัวอย่างคือ str สำหรับตัวแปรสตริง obj สำหรับตัวแปรอ็อบเจ็กต์ const สำหรับค่าคงที่….รายการจะดำเนินต่อไปเรื่อยๆ นี่คือสิ่งที่เราจะใช้ในสคริปต์นี้ ดังนั้นฉันจะอธิบายเล็กน้อย สตริงมักจะเป็นข้อความเหมือนประโยค วัตถุมักจะเป็นสิ่งที่มีอยู่จริง เช่น ไฟล์หรือโปรแกรม และค่าคงที่คือสิ่งที่มักจะมีความหมายเหมือนกันตลอดทั้งสคริปต์หมายเหตุ: เมื่อใดก็ตามที่บรรทัดมีเพียงครั้งเดียว ' ก่อนที่บรรทัดนั้นจะถูกละเว้นโดยสคริปต์ สิ่งเหล่านี้เรียกว่าข้อสังเกตและมักจะใส่โดยโปรแกรมเมอร์ดังนั้น พวกเขาสามารถจดจำสิ่งที่พวกเขาทำในภายหลังเมื่อตรวจสอบรหัส ฉันจะใช้พวกเขาเพื่อแสดงความคิดเห็นเกี่ยวกับรหัสนี้ คุณจะได้เห็นว่าเหตุใดฉันจึงทำอย่างนั้น และพวกเขาจะอยู่เหนือบรรทัดที่พวกเขากำลังแสดงความคิดเห็นเกี่ยวกับการใช้งานจริง:'บรรทัดนี้บังคับให้คุณกำหนดตัวแปรทั้งหมด หากไม่มีตัวแปรใด ๆ ที่ไม่ได้กำหนดจะถือว่าเป็น objectOption ที่ชัดเจน'ตอนนี้เราสร้าง 5 ตัวแปรสำหรับโฟลเดอร์และไฟล์ที่เราจะต้อง'ตั้งชื่อตามที่คุณต้องการ แต่แบบแผนคือ preNameDim objFiSyOb, objSysFold, objShell, objFile, objTextFile' ตอนนี้เราต้องการ เพื่อสร้างตัวแปรสตริงสำหรับไดเร็กทอรี ไฟล์ และชื่อไฟล์Dim strDir, strFile, strFileName'ตอนนี้กำหนดค่าให้กับตัวแปร' strDir คือไดเร็กทอรีของเรา เราต้องการโฟลเดอร์ใน strDir = "C:\Catcher"' strFile เป็นที่ที่เราต้องการ เอกสารข้อความและชื่อไฟล์อะไร strFile = "\Shutdown_catcher.txt"'ชื่อ strfile คือ ดังนั้นเราจึงมีชื่อไฟล์สำหรับใช้ในป๊อปอัปstrFileName ="Shutdown_catcher.txt"'ถัดไป เราต้องกำหนดค่าคงที่สำหรับการเข้าถึง ไฟล์เรามีสามตัวเลือก 'เราจะใช้เฉพาะส่วนต่อท้ายในโค้ดนี้ แต่ก็ดีที่รู้ทั้งหมดนั้น Const forReading=1, forWriting = 2, ForAppending = 8'สุดท้าย เราจำเป็นต้องตั้งค่าตัวแปรให้กับระบบไฟล์ วัตถุเพื่อให้เราสามารถเรียกมันในภายหลังเมื่อเราต้องการมันSet objFiS yOb = CreateObject("Scripting. FileSystemObject")

ขั้นตอนที่ 4: คำอธิบายในระหว่าง

คำอธิบายในระหว่าง
คำอธิบายในระหว่าง

ตอนนี้เราได้มิติตัวแปรของเราแล้ว สิ่งที่เราต้องทำคือจำตัวแปรนั้นในแต่ละครั้ง ซึ่งไม่เพียงแต่ลดจำนวนการพิมพ์ที่เราทำ แต่ยังสร้างข้อผิดพลาดน้อยลงเนื่องจากการสะกดผิด ตอนนี้ในทางเทคนิคแล้ว สิ่งที่เราต้องทำคือพิมพ์รหัสต่อไปนี้ และตั้งค่าไฟล์สำหรับการต่อท้ายSet objTextFile = objFiSyOb. OpenTextFile (strDir) เสร็จแล้ว & strFile, ForAppending, True)'เขียนบรรทัดใหม่ไปที่ fileobjTextFile. WriteLine("Your computer Shut down on " & date & " at " & time)'close the fileobjTextFile. Close'make a pop upWscript. Echo ("Your คอมพิวเตอร์ปิดเครื่องใน " & วันที่ & " ที่ " & เวลา) 'เปิดไฟล์ใน IESet objShell = CreateObject("WScript. Shell")objShell.run ("Explorer" &" " & strDir & "\shutdown_catcher.txt") ปัญหาคือจะไม่มีการแก้ไขข้อผิดพลาด และข้อผิดพลาดง่ายๆ เช่น ไฟล์ที่ไม่มีอยู่หรือตัวแปรที่กำหนดไว้แล้วจะทำให้สคริปต์ขัดข้อง

ขั้นตอนที่ 5: การเขียนสคริปต์ส่วนที่ 3: ถ้าเช่นนั้นคำสั่งเป็นการแก้ไขข้อผิดพลาด

การเขียนสคริปต์ส่วนที่ 3: ถ้าแล้ว งบเป็นการแก้ไขข้อผิดพลาด
การเขียนสคริปต์ส่วนที่ 3: ถ้าแล้ว งบเป็นการแก้ไขข้อผิดพลาด

วิธีที่ง่ายที่สุดในการแก้ไขข้อผิดพลาดคือการใช้คำสั่ง if/then โดยพื้นฐานแล้วคำสั่ง if then บอกว่าหากมีสิ่งใดเกิดขึ้น ให้ทำอย่างอื่นแทน ด้วยการซ้อนคำสั่ง if/then คุณสามารถสร้างสตริงของสิ่งที่ต้องเกิดขึ้นได้ หาก a และ b และ c เกิดขึ้น ให้ทำอย่างอื่นทำ ตัวอย่าง: เราต้องการตรวจสอบให้แน่ใจว่าไฟล์ที่เราต้องการเขียนไปอยู่ที่นั่น หากเราพบมัน เราไม่ต้องการทำอะไรหากเราไม่พบมัน เราต้องการสร้างมันหรือเรา ต้องการตรวจสอบว่ามีโฟลเดอร์อยู่หรือไม่ ถ้าไม่สร้าง จากนั้นให้ตรวจสอบว่ามีไฟล์อยู่ที่นั่นหรือไม่เมื่อเราพบโฟลเดอร์และถ้าไม่สร้างโฟลเดอร์นั้น อันแรกเป็นตัวอย่างของคำสั่ง if แล้ว คำสั่งที่สองจะซ้อนกัน if แล้วอย่างไร เราทำ: มีสี่ส่วนใน if then คำสั่ง if/then elseend หากโดยพื้นฐานแล้วหากสิ่งนี้เป็นจริง ให้ทำอย่างอื่นทำอย่างนั้นแล้วจบคำสั่งที่เข้ารหัสอย่างถูกต้อง if then คำสั่งจะเป็น:If something = บางอย่างแล้วทำ สิ่งที่คุณต้องการ doneElse ทำอย่างอื่นEnd If คุณสามารถใช้อาร์กิวเมนต์ใดก็ได้ตราบใดที่เป็นจริง มันจะติดตามส่วนนั้นและละเว้นส่วน else แต่ถ้าเป็นเท็จ มันจะข้ามแล้วไปที่อื่น จากนั้นเมื่อเราสิ้นสุดคำสั่ง if เราใส่ "end if" แต่ถ้าเราซ้อนคำสั่ง if เราต้องสิ้นสุดทุก if statement มันจะจบพวกเขาจากลูกถึงผู้ปกครองดังนั้น "end if" แรกสิ้นสุดคำสั่ง if ภายใน parent โดยที่อันที่สองสิ้นสุดคำสั่ง if ดั้งเดิม (parent) ในการสร้างป๊อปอัปเราเพียงแค่พิมพ์ Wscript. Echo ("ไม่ว่าอะไรก็ตาม เราต้องการจะพูดในข้อความ ") ในการเพิ่มค่าตัวแปรเข้าไป เราใส่มันไว้นอกหรือระหว่างเครื่องหมายคำพูดคู่โดยใช้เครื่องหมายและ (&) เป็นตัวคั่นเพื่อให้สคริปต์รู้ว่ามันเป็นตัวแปร ไม่ใช่ข้อความแบบนี้:Wscript. Echo ("Blah blah blah " & strDir & " blah blah blah "& strFilename & " blah blah blah") ผลลัพธ์จะเป็นป๊อปอัปที่ระบุว่า Blah blah blah C:\ Catcher blah blah blah shutdown_catcher.txt blah blah blah. Actual Usage:'if the folder C;\exist If objFiSyOb. FolderExists(strDir) Then'get folder Set objSysFold = objFiSyOb. GetFolder(strDir)'otherwiseElse'create the folder c;\catcher Set objSysFyO = obj. CreateFolder(strDir)'และตรวจสอบว่ามีไฟล์และโฟลเดอร์อยู่หรือไม่ ถ้า objFiSyOb. FileExists(strDir & strFile) จากนั้น'ถ้าได้รับโฟลเดอร์ c:\catcher Set ob jSysFold = objFiSyOb. GetFolder(strDir)'otherwiseElse'create text document shutdown_catcher.txt Set objFile = objFiSyOb. CreateTextFile(strDir & strFile)'จากนั้นป๊อปอัปข้อความเพื่อบอกว่าคุณสร้างทั้งสอง Wscript. Echo ("เราได้สร้างโฟลเดอร์แล้ว ชื่อ " & strDir & " และไฟล์ชื่อ "& strFilename & " และวางไว้ในไดเร็กทอรี " & strDir & strFile & "")'end nested if statementEnd If'end original if statementEnd If'now ใน first if statement เราได้ตรวจสอบโฟลเดอร์แล้วและพบมัน ดังนั้นตอนนี้เราจึงตรวจสอบหา fileIf objFiSyOb. FileExists(strDir & strFile) จากนั้น'if found get folder Set objSysFold = objFiSyOb. GetFolder(strDir)'otherwise Else'create the text doc Set objFile = objFiSyOb CreateTextFile(strDir & strFile)'สร้างป๊อปอัปโดยบอกว่าเราสร้างเอกสารข้อความ Wscript. Echo ("เราได้สร้างไฟล์ชื่อ " & strFileName & " ใน " & strDir & "โฟลเดอร์ไฟล์") สิ้นสุดหาก

ขั้นตอนที่ 6: คำอธิบายในระหว่าง

คำอธิบายในระหว่าง
คำอธิบายในระหว่าง

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

ขั้นตอนที่ 7: การแก้ไขข้อผิดพลาดเพิ่มเติม

แก้ไขข้อผิดพลาดเพิ่มเติม
แก้ไขข้อผิดพลาดเพิ่มเติม

ตอนนี้เราได้แก้ไขข้อผิดพลาดส่วนใหญ่เสร็จแล้ว เราต้องการเขียนไปยังไฟล์และแสดงป๊อปอัป ปัญหาคือเราจะได้รับข้อผิดพลาดในการอนุญาตหากเราไม่ปล่อยการอ้างอิงของวัตถุก่อนหน้าที่เก็บไว้ในตัวแปร ดังนั้นเราจึงต้องการใส่ข้อมูลโค้ดเล็กๆ ที่ระบุว่า set the variables เป็น nothing.looks like this:set objFile = nothingset objSysFold = nothing ดังนั้นสำหรับพวกคุณที่ติดตามอยู่ที่บ้าน โค้ดของคุณมาถึงจุดนี้ (ฉันเอาความคิดเห็น ออก):Option ExplicitDim objFiSyOb, objSysFold, objShell, objFile, objTextFileDim strDir, strFile, strFileNamestrDir = "C:\Catcher"strFile = "\Shutdown_catcher.txt"strFileName ="Shutdown_catcher.txt"Const forReading=1, ForAppending = 8Set objFiSyOb = CreateObject("Scripting. FileSystemObject")หาก objFiSyOb. FolderExists(strDir) จากนั้น ตั้งค่า objSysFold = objFiSyOb. GetFolder(strDir)Else Set objSysFold = objFiSyOb. CreateFolder ifjDirSFirSFir) Set objSysFold = objFiSyOb. GetFolder(strDir)Else Set objFile = objFiSyOb. CreateTextFile(strDir & strFile) Wscript. Echo ("เราได้สร้างโฟลเดอร์ชื่อ " & strDir & " และไฟล์ชื่อ "& strFilename & " และวางไว้ใน ไดเร็กทอรี " & strDir & strFile & "") สิ้นสุด I fEnd IfIf objFiSyOb. FileExists(strDir & strFile) จากนั้น ตั้งค่า objSysFold = objFiSyOb. GetFolder(strDir)Else Set objFile = objFiSyOb. CreateTextFile(strDir & strFile) Wscript. Echo ("เราสร้างชื่อไฟล์แล้ว " & strFile " & strDir & "โฟลเดอร์ไฟล์") สิ้นสุด Ifset objFile = nothingset objSysFold = ไม่มีอะไร

ขั้นตอนที่ 8: การเขียนสคริปต์ตอนที่ 4: การตั้งค่าคุณสมบัติ

การเขียนสคริปต์ตอนที่ 4: การตั้งค่าคุณสมบัติ
การเขียนสคริปต์ตอนที่ 4: การตั้งค่าคุณสมบัติ

ตอนนี้เราต้องตั้งค่าแอตทริบิวต์ให้กับไฟล์เพื่อให้เราสามารถแก้ไขได้ ก่อนหน้านี้ เราตั้งค่าตัวแปรคงที่สามตัว:forReading=1forWriting=2 forAppending=8ถ้าคุณตั้งค่าเป็น forReading คุณจะสามารถอ่านได้ แต่เขียนไม่ได้ หากคุณตั้งค่าเป็น forWriting คุณจะเขียนทับไฟล์ที่มีอยู่ทุกครั้งที่คุณเรียกใช้โปรแกรม. หากคุณตั้งค่าเป็น forAppending คุณจะเพิ่มบรรทัดใหม่ทุกครั้งที่สคริปต์ดำเนินการกับเอกสาร เนื่องจากเราต้องการบันทึกทุกครั้งที่รีบูต เราจึงต้องการให้มีการต่อท้ายและไม่เขียนทับ ดังนั้นเราจึงใช้ forAppending วิธีที่เราดำเนินการ:คุณต้องตั้งชื่อวัตถุที่คุณต้องการตั้งค่าแอตทริบิวต์ เนื่องจากเราได้ทำงานส่วนใหญ่ในขั้นตอนก่อนหน้านี้แล้ว เราจึงจำเป็นต้องเรียกคืนตัวแปร ณ จุดนี้ จากนั้นตั้งค่าเป็น true. Actual Usage:'object to set = filesystemobject.action(directory+name of file, attribute, true or false)Set objTextFile = objFiSyOb. OpenTextFile (strDir & strFile, ForAppending, True)

ขั้นตอนที่ 9: การเขียนสคริปต์ตอนที่ 5: การเขียนไปยังไฟล์

การเขียนสคริปต์ ตอนที่ 5: การเขียนลงไฟล์
การเขียนสคริปต์ ตอนที่ 5: การเขียนลงไฟล์

การเขียนไฟล์ก็เหมือนกับการเขียนป๊อปอัป คุณเพียงแค่ใส่:objTextFile. WriteLine("สิ่งที่คุณต้องการจะพูด" & Variable เพื่อดึงเข้ามาเพื่อเขียนบรรทัด) ความแตกต่างเพียงอย่างเดียวคือส่วนแรก ในป๊อปอัป คุณใส่:Wscript.echoin บรรทัดการเขียนที่คุณใส่:objTextFile WriteLineและในบรรทัดการเขียน คุณต้องปิดบรรทัดการเขียนเพื่อให้รู้ว่าต้องหยุดเขียน และสำหรับสิ่งที่คุณใช้:objTextFile. CloseActual Usage:objTextFile. WriteLine("คอมพิวเตอร์ของคุณปิดเครื่องเมื่อ " & วันที่ & " ที่ " & เวลา)objTextFile.close'now เพิ่มในป๊อปอัปเพื่อบอกว่าคุณเขียนถึงไฟล์เพื่อให้บุคคลนั้นรู้ว่ามันเกิดขึ้น และพวกเขาต้องปิดเพื่อเปิดไฟล์และ viewWscript. Echo ("คอมพิวเตอร์ของคุณปิดเครื่องเมื่อ " & วันที่ & " ที่ " & เวลา)

ขั้นตอนที่ 10: การเขียนสคริปต์ตอนที่ 5: การเปิดไฟล์เพื่อดู

การเขียนสคริปต์ตอนที่ 5: การเปิดไฟล์สำหรับการดู
การเขียนสคริปต์ตอนที่ 5: การเปิดไฟล์สำหรับการดู

สคริปต์จะหยุดทำงานจนกว่าจะมีคนคลิกป๊อปอัป เมื่อคุณผ่านป๊อปอัปแล้ว คุณสามารถวางบรรทัดเพื่อเปิดไฟล์ได้ การใช้การแก้ไขข้อผิดพลาดช่วยให้โปรแกรมทำงานได้อย่างดี เมื่อคุณสร้างข้อผิดพลาดใน vbscript โปรแกรมจะเพิ่มค่าให้กับตัวแปร "err.number" ซึ่งเป็นตัวแปรที่กำหนดไว้ล่วงหน้าใน vbscript คุณไม่จำเป็นต้องกำหนดและใช้งานได้เหมือนกับตัวแปรอื่นๆ ตราบใดที่คุณไม่ละเมิดกฎของตัวแปร ค่าที่กำหนดให้กับตัวแปร err.number คือรหัสสำหรับข้อผิดพลาดที่เกิดขึ้น ตอนนี้คุณสามารถตรวจสอบทุกรหัสข้อผิดพลาดที่รู้จักในฐานข้อมูล vbscript และตรวจสอบให้แน่ใจว่าไม่ได้เกิดขึ้น หรือง่ายกว่านั้นก็แค่ตรวจสอบให้แน่ใจว่าตัวแปร err.number ว่างเปล่า หากว่างเปล่าไม่มีข้อผิดพลาดเกิดขึ้น ในการทำเช่นนั้น เราเพียงแค่ตรวจสอบเพื่อดูว่าตัวแปรนั้นเท่ากับ vbEmpty หรือไม่ ดังนั้นในสคริปต์ของเรา เราต้องการใช้คำสั่ง if then อื่น และตรวจสอบดูว่ามีข้อผิดพลาดเกิดขึ้นหรือไม่และไม่ได้เปิดไฟล์เพื่อดู แต่ถ้ามันปรากฏขึ้นแล้วจะมีข้อความแสดงหมายเลขข้อผิดพลาดในนั้นเพื่อให้เราสามารถแก้ไขข้อบกพร่องได้ จากนั้นเมื่อเราทำสคริปต์ของเราเสร็จแล้วเรา พิมพ์ Wscript. Quit สิ่งนี้บอกให้สคริปต์ยุติการทำงานเอง วิธีนี้ช่วยไม่ให้หน่วยความจำรั่วไหลและกระบวนการที่ไม่ต้องการทำงาน วิธีใช้:ถ้า err.number เท่ากับ vbEmpty จากนั้นสร้างเชลล์จากนั้นเรียกใช้โปรแกรมจากเชลล์มิฉะนั้นจะมีข้อความแจ้งว่าเกิดข้อผิดพลาด if. Actual Usage:'check for errorIf err.number = vbEmpty แล้ว 'ถ้าไม่มีใครสร้างเชลล์ Set objShell = CreateObject("WScript. Shell")' ให้เปิดไฟล์จากเชลล์นั้นโดยใช้ explorer มันจะเปิดขึ้นใน IE แม้ว่า objShell.run ("Explorer" &" " & strDir & "\shutdown_catcher.txt")' มิฉะนั้นจะแสดงข้อความที่มีข้อผิดพลาด numberElse WScript.echo "VBScript Error: " & err.numberEnd ถ้า 'สิ้นสุด scriptWscript.quit

ขั้นตอนที่ 11: ทำให้สคริปต์ทำงานเมื่อเริ่มต้น

ทำให้สคริปต์ทำงานเมื่อเริ่มต้น
ทำให้สคริปต์ทำงานเมื่อเริ่มต้น

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

ขั้นตอนที่ 12: การเรียกใช้โปรแกรม

การรันโปรแกรม
การรันโปรแกรม
การรันโปรแกรม
การรันโปรแกรม
การรันโปรแกรม
การรันโปรแกรม

เมื่อคุณรันไฟล์ vbscript ตอนนี้จะเป็น A.) ตรวจสอบเพื่อดูว่ามีโฟลเดอร์ C:\Catcher อยู่หรือไม่ และถ้าไม่ได้สร้างมันขึ้นมา B:) ตรวจสอบเพื่อดูว่าไฟล์ Shutdown_catcher.txt มีอยู่หรือไม่ และถ้าไม่ได้สร้างมันขึ้นมา C:) หากสร้างโฟลเดอร์หรือไฟล์หรือทั้งสองอย่าง จะมีข้อความปรากฏขึ้นว่าได้สร้างขึ้นมา (หมายเหตุ: ควรทำสิ่งนี้เมื่อเรียกใช้ครั้งแรกเท่านั้น หลังจากนั้น ควรมีอยู่แล้วเว้นแต่ถูกลบ ดังนั้นคุณควรเห็นข้อความนั้นเพียงครั้งเดียว.อาจเป็นความคิดที่ดีที่จะเรียกใช้สคริปต์นี้ภายใต้การควบคุมการรีบูตเพื่อให้คุณสามารถข้ามป๊อปอัปเหล่านี้หรือคุณไม่สามารถเขียนอะไรลงในไฟล์ได้เนื่องจากจะไม่ข้ามไฟล์ที่สร้างขึ้นป๊อปอัป)D:) เขียนบรรทัดใน เอกสารข้อความ Shutdown_Catcher.txt บอกว่าปิดเครื่องคอมพิวเตอร์ในวันที่ดังกล่าวและดังกล่าวในเวลาดังกล่าว E:) ป๊อปอัปข้อความแจ้งว่ามีการรีบูตF:) เปิดไฟล์สำหรับการดูหากคุณดูในขั้นตอนต่อไป คุณจะเห็นรหัสตามที่เขียนไว้ ตอนนี้ทั้งหมดที่ฉันต้องทำคือนั่งรอ ทุกครั้งที่รีบูตคอมพิวเตอร์ ฉันจะมีบันทึกของมัน จากนั้นฉันจะตรวจสอบบันทึกและดูว่ามีความสอดคล้องกันหรือไม่ ตัวอย่างอาจเป็นการรีบูตทุก ๆ ครึ่งชั่วโมงหรือรีบูตทุกครั้งที่มีการเพิ่มขึ้นหรือ 45 บนนาฬิกา นี่ไม่ใช่วิธีเดียวที่ฉันจะตรวจสอบผ่านคอมพิวเตอร์ เพื่อให้คุณทราบ ฉันยังมีโปรแกรมการเปรียบเทียบที่ทำงานเพื่อตรวจสอบอุณหภูมิด้วย ดังนั้นฉันรู้ว่ามันร้อนแค่ไหนเมื่อปิดเครื่อง แรงดันไฟฟ้า ฉันจึงรู้ว่าแหล่งจ่ายไฟขัดข้องหรือไม่ และมีประโยชน์อื่นๆ อีกสองสามอย่าง ฉันหวังว่านี่จะเป็นประโยชน์ ฉันรู้ว่าฉันสนุกกับมันดังนั้นบางทีคนอื่นก็เช่นกัน หากคุณมีคำถามใด ๆ อย่าลังเลที่จะถาม ฉันอาจจะไม่ได้ไปหาพวกเขาในทันทีแต่อีกหน่อยฉันจะตอบคุณ ขึ้นอยู่กับว่าวัน/สัปดาห์ของฉันเป็นอย่างไร

ขั้นตอนที่ 13: รหัส

รหัส
รหัส

นี่คือโค้ดที่เขียนโดยไม่มีคำแนะนำและหมายเหตุทั้งหมด_Option ExplicitDim objFiSyOb, objSysFold, objShell, objFile, objTextFileDim strDir, strFile, strFileNamestrDir = "C:\Catcher"catcherFile = "\Shutdown_catcher.txt"strFileName =" Const forReading=1, forWriting = 2, ForAppending = 8Set objFiSyOb = CreateObject("Scripting. FileSystemObject")If objFiSyOb. FolderExists(strDir) จากนั้นตั้งค่า objSysFold = objFiSyOb. GetFolder(strDir)Else Set objSysDirOb. objFiSyOb. FileExists(strDir & strFile) จากนั้น ตั้งค่า objSysFold = objFiSyOb. GetFolder(strDir)Else Set objFile = objFiSyOb. CreateTextFile(strDir & strFile) Wscript. Echo ("เราได้สร้างโฟลเดอร์ชื่อ " & ไฟล์ชื่อ " & strDir & " "& strFilename & " และวางไว้ในไดเร็กทอรี " & strDir & strFile & "") สิ้นสุด IfEnd IfIf objFiSyOb. FileExists(strDir & strFile) จากนั้นตั้งค่า objSysFold = objFiSyOb. GetFolder (strextDir)Else Set objFile = objFiSyOb. strDir & strFile) Wscript. Echo ("เรามี สร้างไฟล์ชื่อ " & strFileName & " ใน " & strDir & "โฟลเดอร์ไฟล์.")End Ifset objFile = nothingset objSysFold = nothingSet objTextFile = objFiSyOb. OpenTextFile (strDir & strFile, ForAppending, True)objTextFile. WriteLine("คอมพิวเตอร์ของคุณ ปิด " & วันที่ & " ที่ " & เวลา) objTextFile. CloseWscript. Echo ("คอมพิวเตอร์ของคุณปิดเครื่องเมื่อ " & วันที่ & " ที่ " & เวลา) หาก err.number = vbEmpty ให้ตั้งค่า objShell = CreateObject ("WScript. เชลล์") objShell.run ("Explorer" &" " & strDir & "\shutdown_catcher.txt") อื่น ๆ WScript.echo "ข้อผิดพลาด VBScript: " & err.numberEnd IfWScript. Quit

แนะนำ: