Съдържание:

Въведение в VB Script: Ръководство за начинаещи: Част 2: Работа с файлове: 13 стъпки
Въведение в VB Script: Ръководство за начинаещи: Част 2: Работа с файлове: 13 стъпки

Видео: Въведение в VB Script: Ръководство за начинаещи: Част 2: Работа с файлове: 13 стъпки

Видео: Въведение в VB Script: Ръководство за начинаещи: Част 2: Работа с файлове: 13 стъпки
Видео: Пълното ръководство за Google Forms - Онлайн проучване и инструмент за събиране на данни! 2024, Юли
Anonim
Въведение в VB Script: Ръководство за начинаещи: Част 2: Работа с файлове
Въведение в VB Script: Ръководство за начинаещи: Част 2: Работа с файлове

Е, в последната ми инструкция за VBScript, разгледах как да направя скрипт, който да изключи интернет, за да играе Xbox360. Днес имам различен проблем. Компютърът ми се изключва на случаен принцип и искам да влизам всеки път, когато компютърът се рестартира във файл. Имам чувството, че проблемът е във видеокартата, но искам да се уверя. Оставям компютъра включен по всяко време, но не мога да го наблюдавам денонощно, така че най -лесното ми решение е да напиша времева маркировка на файл при всяко рестартиране. Тъй като ми дава BSOD всеки път, регистрирането, когато се изключи, ще бъде трудно, така че трябва да го получа, когато се върне. Това е лесната част. Поради факта, че това е само временно, докато разбера какво не е наред с компютъра, няма да пиша в системния регистър или да го направя услуга, така че да се стартира по време на зареждане. И за да го рестартирам всеки път, когато се изключи, ще трябва да редактирам биоса.

Стъпка 1: Редактирайте Bios, за да го рестартирате при прекъсване на захранването

Редактиране на Bios, за да го рестартирате при прекъсване на захранването
Редактиране на Bios, за да го рестартирате при прекъсване на захранването

Не съм сигурен дали проблемът ми е с повреда на захранването или с видеокартата ми или каква е тя. Но знам, че компютърът се рестартира толкова често. Така че, за да се уверя, че се рестартира след прекъсване на захранването (IE: захранването се зачервява), искам да редактирам биоса. Поради факта, че има толкова много различни производители на биос, би било твърде трудно да изброя всички различни начини да направите това във всички различни екрани на биос, така че аз просто ще ви дам основите и ще ви позволя да разберете спецификите сами. По принцип, за да влезете в биографията си, ще трябва да натиснете бутон при зареждане. Обикновено ще пише нещо като „натиснете Del, за да влезете в настройката“или „F2“. Различните производители ви дават различни начини, но обикновено това е клавиш „F2“или „Del“. Така или иначе го следете и натиснете клавиша, който ви казва да улучите. Сега ще стигнете до екран, който обикновено е сив или син, но отново зависи от вашата биография. Ще търсите опция за настройки на захранването. Той или ще бъде на собствен прозорец, както в екрана на AMIBIOS (заимстван от ръководството за хардуер на toms), или в някои може да е в прозорец с разширени функции за биос. Така или иначе търсите настройка "възстановяване при променлив ток/загуба на захранване". Може да се нарече нещо друго, но ще бъде близо до това. Просто го потърсете. Обикновено ще има три опции (последно състояние, включено след загуба на захранване, изключено след загуба на захранване). Искате да го включите след загуба на захранване. Не забравяйте да запазите настройките си и да излезете от биоса. Сега, когато захранването ви се прекъсне или изключите машината, тя ще се рестартира веднага щом се върне. Даааааа !!!!!!!!!!!!!!!!

Стъпка 2: Писане на скрипта Част 1: Изготвяне на план

Писане на сценария Част 1: Изготвяне на план
Писане на сценария Част 1: Изготвяне на план
Писане на сценария Част 1: Изготвяне на план
Писане на сценария Част 1: Изготвяне на план
Писане на сценария Част 1: Изготвяне на план
Писане на сценария Част 1: Изготвяне на план
Писане на сценария Част 1: Изготвяне на план
Писане на сценария Част 1: Изготвяне на план

Първото нещо, което искаме да направим, е да създадем план. Какво точно искаме да прави скриптът. А.) Когато захранването прекъсне или BSOD се появи, искаме да се рестартира. (Взети сме предвид в стъпка 1 Редактиране на BiosB.) Веднага след като се рестартира, искаме да запишем във файл точната дата и час на рестартиране. В.) Искаме да можем да променим този файл. Ако се рестартира повече от веднъж, никога няма да разберем. D.) Искаме да има корекция на грешки, така че да не прецака и се уверяваме, че получаваме всичките ни рестартирания, без да пропускаме поради лошо кодиране. Д.) Искаме го за да изскочим съобщение, казващо, че е рестартирано. F.) Искаме той да отвори файла, в който сме писали, за да можем да видим списък с всички рестартирания, когато щракнем OK върху изскачащото съобщение.

Стъпка 3: Писане на скрипта Част 2: Създаване на вашия скрипт и присвояване на променливите

Писане на скрипта Част 2: Създаване на вашия скрипт и присвояване на променливите
Писане на скрипта Част 2: Създаване на вашия скрипт и присвояване на променливите

Добре първо, създайте текстов документ и го преименувайте на any_name.vbs. Използвах shutdown_catcher.vbs, но можете да използвате всичко. Сега просто щракнете с десния бутон върху vbs файла и натиснете редактиране. Ако използвате notepad ++ сега ще е подходящ момент да го отворите, ако не го правите, но планирате да го кодирате сега трябва да направим променливи. Променливите са основно само място, така че не е нужно да пишем цял куп неща куп пъти. пример: имаме изречение, което казва „бързата кафява лисица прескача мързеливите кучета назад“. но е в нашия код 20 пъти. можем или да изпишем цялото изречение 20 пъти, или да създадем променлива и да присвоим изречението на тази променлива. Така че в този пример създаваме променливата strSentence, след което присвояваме "бързата кафява лисица прескача мързеливите кучета обратно" на тази променлива. Сега всичко, което трябва да направим, е да въведем strSentence всеки път, когато имаме нужда от изречението и то знае да напише „бързата кафява лисица прескача мързеливите кучета назад“как да го направим: Ако имаме множество променливи от един и същи тип, можем да поставим ги на същия ред и разделете променливите със запетаи. За да създадем променлива, трябва да направим това, което се нарича оразмеряване на променливата. За да направите това, ние въвеждаме Dim преди променливата, след което поставяме префикс върху променливата, за да знаем какво представлява променливата. Примерите са str за низова променлива obj за променлива за обект const за константа …. Списъкът продължава и продължава. това са тези, които ще използваме в този скрипт, така че ще ги обясня малко. низ обикновено е текст като изречение. Обектът обикновено е нещо физическо като файл или програма. а константата е нещо, което винаги ще има едно и също значение в целия сценарий. ЗАБЕЛЕЖКА: ВСЕКИ път РЕЖИТА Е ЕДИНСТВЕНА, „ПРЕДИ ЛИНИЯТА ЩЕ БЪДЕ ИГНОРИРАНА ОТ СЦЕПТА. ТЕ СА НАЗВАНИ ЗАБЕЛЕЖКИ И СЕ ПРИЛОЖИТЕЛНО СТАВАТ ОТ ПРОГРАМИРАЧА МОГАТ ДА ЗАПОМНЯТ КАКВО СА НАПРАВИЛИ ПО -КЪС ПРЕГЛЕД НА КОД. ЩЕ ГИ ИЗПОЛЗВАМ ЗА КОМЕНТАРИ ЗА КОДА, ЗА ДА ВИДИТЕ ЗАЩО НАПРАВИХ НАЧИНА, КОЙТО НАПРАВИХ. И ТЕ ЩЕ СА НАД РЕЖИТЕ, ЗА КОИТО КОМЕНТИРАТ. Действителна употреба: „този ред ви принуждава да дефинирате всички променливи. Без него всяка дефинирана променлива ще се третира като objectOption Explicit'и сега създаваме 5 променливи за папките и файловете, от които ще се нуждаем'именувайте ги както искате, но конвенцията е preNameDim objFiSyOb, objSysFold, objShell, objFile, objTextFile'и сега имаме нужда за създаване на низови променливи за директорията, файла и името на файлаDim strDir, strFile, strFileName'значим сега стойности на променливите / strDir е нашата директория, в която искаме папката в strDir = "C: / Catcher" 'strFile е където искаме текстовият документ и неговото име strFile = "\ Shutdown_catcher.txt" 'името на strfile е, така че имаме името на файла за използване в изскачащи файлове upsstrFileName = "Shutdown_catcher.txt"' След това трябва да зададем константа за достъп до файл имаме три опции "ние ще използваме само добавянето в този код, но е хубаво да ги знаем. Const forReading = 1, forWriting = 2, ForAppending = 8" накрая трябва да зададем променлива към файловата система обект, за да можем да го извикаме по -късно, когато имаме нужда от него Задайте objFiS yOb = CreateObject ("Scripting. FileSystemObject")

Стъпка 4: Обяснения между тях

Обяснения между тях
Обяснения между тях

Сега, когато имаме променливите си променливи, всичко, което трябва да направим, е всеки път да си припомняме тази конкретна променлива. Това не само намалява количеството на въвеждане, което правим, но също така създава по -малко грешки поради правописни грешки. Сега технически всичко, което трябва да направим, е да напишем следния код и сме готови 'задайте файла за appendingSet objTextFile = objFiSyOb. OpenTextFile (strDir & strFile, ForAppending, True) 'запишете новия ред във файлаobjTextFile. WriteLine ("Компютърът ви се изключи на" & date & "в" & час) "затворете файлаobjTextFile. Close компютър Изключете "& date &" at "& time)" отворете файла в IESet objShell = CreateObject ("WScript. Shell") objShell.run ("Explorer" & "" & strDir & "\ shutdown_catcher.txt") Проблемът е, че няма да има корекция на грешки и всяка проста грешка като файл, който не съществува или вече зададена променлива, ще срине скрипта.

Стъпка 5: Писане на скрипта Част 3: Ако тогава изявленията като корекция на грешка

Писане на скрипта Част 3: Ако тогава изявленията като корекция на грешка
Писане на скрипта Част 3: Ако тогава изявленията като корекция на грешка

Най -лесният начин за коригиране на грешки е да използвате инструкции if/then. По принцип оператор if тогава казва, ако нещо се случи, направете това в противен случай. Чрез влагане на инструкции if/then можете да създадете низ от неща, които трябва да се случат. Ако се случат a и b и c, направете това иначе. Пример: искаме да се уверим, че файлът, в който искаме да запишем, е там, ако го намерим, искаме да не правим нищо, ако не го намерим, искаме да го създадем или искате да проверите дали папката е там и ако не я създайте и след това проверете дали файлът е там, след като намерим папката и ако не я създадем, първата е пример за оператор if тогава, втората е вложена, ако тогава. ние го правим: има четири части на if тогава, ако/then elseend, ако това е основно, ако това е вярно, направете това в противен случай направете това, след това прекратете изявлението, правилно кодирано, ако тогава изявлението ще бъде: Ако нещо = нещо, тогава направете каквото трябва, направете друго или направете нещо друго Край IfYou можете да използвате всеки аргумент, стига да е вярно, той ще следва частта then и ще игнорира частта else, но ако е невярно, ще пропусне тогава и ще отиде в else Тогава, когато приключваме оператора if поставяме "край ако", но ако имаме вложени if изрази трябва да приключваме всеки оператор if. Той ще ги прекрати от дете на родител, така че първият "край ако" завършва оператора if вътре в родителя, където вторият завършва оригинала (родител) if израз. За да се появи изскачащ прозорец, ние просто въвеждаме Wscript. Echo ("каквото и да е искаме да кажем в съобщението "), за да добавим стойност на променливи в него, ние го поставяме извън или между двойни кавички, използвайки знака амперсанд (&) като разделител, така че скриптът да знае, че е променлива, а не текст. като това: Wscript. Echo ("Бла бла бла" & strDir & "бла бла бла" & strFilename & "бла бла бла" blah blah blah. Actual Usage: 'ако папката C; / съществува Ако objFiSyOb. FolderExists (strDir) Тогава'get папка Задайте objSysFold = objFiSyOb. GetFolder (strDir)' в противен случайElse'създайте папката c; / catcher Задайте objSysFold = objSysFold = objSysFold = objSysFold = objSysFold = CreateFolder (strDir) 'и проверете дали файлът и папката съществуват Ако objFiSyOb. FileExists (strDir & strFile) Тогава'ако получи папка c: / catcher Задайте ob jSysFold = objFiSyOb. GetFolder (strDir) 'inaceElse'създайте текстов документ shutdown_catcher.txt Задайте objFile = objFiSyOb. CreateTextFile (strDir & strFile)', след което изскача съобщение, че сте създали и двете Wscript. Echo ("Създадохме папка с име "& strDir &" и файл с име "& strFilename &" и го постави в директорията "& strDir & strFile &". ")" end nested if statementEnd If'end original if statementEnd If'now в първия if израз вече проверихме за папка и я намерихме, така че сега проверяваме за fileIf objFiSyOb. FileExists (strDir & strFile) Тогава'ако се намери get папка Set objSysFold = objFiSyOb. GetFolder (strDir) 'в противен случай създайте текстовия документ Set objFile = objFiSyOb. CreateTextFile (strDir & strFile) 'създайте изскачащ прозорец, казвайки, че създадохме текстовия документ Wscript. Echo ("Създадохме файл с име" & strFileName & "в папката" & strDir & "файл.") Край Ако

Стъпка 6: Обяснения между тях

Обяснения между тях
Обяснения между тях

Ако разгледате внимателно кода от предишната стъпка, ще видите както вложено, така и не-вложено изявление if then. Първият е вложен израз. Той проверява папката и файла и ако не ги намери, създава и двете. Вторият търси само файл и ако не го намери, той създава само файла. Може да се каже защо и двете. Е, какво ще стане, ако файлът бъде изтрит, но папката не е. Първият оператор if ще прескочи създаването на файла, защото е намерил папката и никога няма да задейства другата част на израза. Така че, когато отидохте да пишете във файла, това ще доведе до грешка, защото файлът ще липсва. Така че, като има втория там, той решава този проблем. Технически бихте могли да извадите вложеното изявление, защото то е почти същото като второто, ако след това, но тогава ще имате само един изскачащ прозорец и той няма да бъде толкова персоналенPlus ми даде шанс да ви покажа вложени, за разлика от un -нестени if изявления.

Стъпка 7: Повече коригиране на грешки

Повече коригиране на грешки
Повече коригиране на грешки

Сега, когато завършихме по -голямата част от корекцията на грешки, искаме да запишем във файла и да покажем изскачащите прозорци. Проблемът е, че ще получим грешки в разрешенията, ако не освободим препратката към предишния обект, съхраняван в променливата. Така че ние искаме да поставим малък фрагмент от код, който казва, задайте променливите на nothing. out): Опция ExplicitDim objFiSyOb, objSysFold, objShell, objFile, objTextFileDim strDir, strFile, strFileNamestrDir = "C: / Catcher" strFile = "\ Shutdown_catcher.txt" strFileNamest = "Shutdown ForAppending = 8Set objFiSyOb = CreateObject ("Scripting. FileSystemObject") Ако objFiSyOb. FolderExists (strDir) След това задайте objSysFold = objFiSyOb. GetFolder (strDir) Else Задайте objSysFod (strj) Задайте objSysFold = objFiSyOb. GetFolder (strDir) Иначе задайте objFile = objFiSyOb. CreateTextFile (strDir & strFile) Wscript. Echo ("Създадохме папка с име" & strDir & "и файл с име" & strFilename & "и го поставихме в директорията "& strDir & strFile &". ") Край I fEnd IfIf objFiSyOb. FileExists (strDir & strFile) След това задайте objSysFold = objFiSyOb. GetFolder (strDir) Иначе задайте objFile = objFiSyOb. CreateTextFile (strDir & strFile) Wscript. Echo (" "& strDir &" файлова папка. ") Край на Ifset objFile = nothingset objSysFold = nothing

Стъпка 8: Писане на скрипта Част 4: Задаване на атрибути

Писане на скрипт Част 4: Задаване на атрибути
Писане на скрипт Част 4: Задаване на атрибути

Сега трябва да зададем атрибутите на файла, за да можем да го променим. Преди това зададохме три постоянни променливи: forReading = 1forWriting = 2 forAppending = 8 ако го зададете за forReading, ще можете да го прочетете, но няма да пишете в него.. Ако го зададете за forAppending, ще добавяте нов ред всеки път, когато скриптът се изпълнява към документа. Тъй като искаме регистрационен файл за всяко рестартиране, искаме той да бъде добавен, а не презаписан, затова използваме forAppending. Как го правим: трябва да посочите обекта, към който искате да зададете атрибути. Тъй като вече сме свършили по -голямата част от работата в предишните стъпки, просто трябва да си припомним променливите на този етап. След това просто го задайте на true. Действителна употреба: 'object to set = filesystemobject.action (директория+име на файл, атрибут, вярно или невярно) Задайте objTextFile = objFiSyOb. OpenTextFile (strDir & strFile, ForAppending, True)

Стъпка 9: Писане на скрипта Част 5: Писане във файл

Писане на скрипт Част 5: Писане във файл
Писане на скрипт Част 5: Писане във файл

Писането във файл е много като писане на изскачащ прозорец. Просто поставяте: objTextFile. WriteLine ("Каквото искате да кажете" & Променлива, за да влезете в реда за запис) Единствената разлика е първата част. В изскачащ прозорец поставяте: Wscript.echoin ред за писане, който поставяте: objTextFile. WriteLine И в ред за писане трябва да затворите реда за запис, така че да знае да спре да пише и за това използвате: objTextFile. CloseActual Използване: objTextFile. WriteLine ("Компютърът ви се изключва на" & date & "в" & час) objTextFile.close'now добавете изскачащ прозорец, за да кажете, че сте писали във файла, така че лицето да знае, че се е случило'и те трябва да го затворят, за да отворят файла и viewWscript. Echo ("Вашият компютър се изключи на" & date & "at" & време)

Стъпка 10: Писане на скрипта Част 5: Отваряне на файла за преглед

Писане на скрипт Част 5: Отваряне на файла за преглед
Писане на скрипт Част 5: Отваряне на файла за преглед

Скриптът в този момент ще спре, докато някой не кликне върху изскачащия прозорец. След като преминете през изскачащия прозорец, можете да поставите ред, който отваря файла. Използването на някаква корекция на грешки помага да се поддържа програмата да работи добре. Когато създавате грешка във vbscript, тя добавя стойност към променливата "err.number", която е предварително дефинирана променлива във vbscript. Не е нужно да го дефинирате и можете да го използвате, както всяка друга променлива, стига да не нарушавате нейните правила. Стойността, присвоена на променливата err.number, е кодът за възникналата грешка. Сега можете или да проверите за всеки код за грешка, известен в базата данни vbscript, и да се уверите, че не е възникнал. Или по -лесно, просто проверявате дали променливата err.number е празна. ако е празно, не са възникнали грешки. За да направим това, просто проверяваме дали променливата е равна на vbEmpty. Така че в нашия скрипт искаме да използваме друг израз if тогава. И проверете дали е възникнала грешка и дали не е отворил файла за преглед, но ако се е случило, тогава изскача съобщение с номера на грешката в него, за да можем да отстраним грешките. След като всички приключим с нашия скрипт, въведете Wscript. Quit. Това казва на скрипта да се прекрати сам. Това помага да се запазят течовете на паметта и нежеланите процеси да се изпълняват. Как се използва: ако err.number е равен на vbEmpty, тогава създайте черупка, след това стартирайте програмата от остатъка, в противен случай изскача съобщение, че има грешка if. errorIf err.number = vbEmpty then'if none create a shell Set Set objShell = CreateObject ("WScript. Shell") 'след това отворете файла от тази обвивка с помощта на Explorer. тя всъщност ще се отвори в IE, въпреки че objShell.run ("Explorer" & "" & strDir & "\ shutdown_catcher.txt") 'иначе ще се появи съобщение с номер на грешкаElse WScript.echo "VBScript Error:" & err.numberEnd If 'end scriptWscript.quit

Стъпка 11: Стартиране на скрипта при стартиране

Как да стартирате скрипта при стартиране
Как да стартирате скрипта при стартиране

В стартовото меню има папка с файлове, наречена Startup. Всичко, поставено в тази папка, ще се стартира веднага след стартирането на компютъра. Поставяйки скриптовия файл в папката за стартиране, той ще се изпълнява всеки път, когато компютърът се рестартира, независимо дали умишлено или не. Тъй като използвам това само като диагностичен инструмент, не е необходимо да се превръща в услуга за стартиране и не е нужно да го поставям в системния регистър, за да го стартирам, така че това ще бъде наред. След като поправя компютъра, мога да изтрия файла от папката за стартиране и не се изисква друго почистване.

Стъпка 12: Стартиране на програмата

Стартиране на програмата
Стартиране на програмата
Стартиране на програмата
Стартиране на програмата
Стартиране на програмата
Стартиране на програмата

Когато изпълнявате файла vbscript, той сега ще стане A.) Проверете дали папката C: / Catcher съществува и ако не я създайте. B:) Проверете дали файлът Shutdown_catcher.txt съществува и ако не го създайте. C:) Ако е създал или папка, или файл, или и двете, ще изскочи съобщение, че ги е създал (Забележка: трябва да направи това само при първото стартиране, след което вече трябва да е там, освен ако не е изтрито, така че трябва да видите това съобщение само веднъж. Може да е добра идея да стартирате този скрипт веднъж при контролирано рестартиране, за да можете да заобиколите тези изскачащи прозорци или да не запишете нищо във файла, защото няма да заобиколи създадените файлове изскачащи прозорци.) D:) Напишете ред в текстов документ Shutdown_Catcher.txt, който казва, че компютърът се изключва на такава и такава дата в такъв и такъв момент. E:) Изскача съобщение, че е имало рестартиранеF:) Отворете файла за преглед. Ако погледнете в следващата стъпка ще видите кода като написан. Сега всичко, което трябва да направя, е да седя и да чакам. Всеки път, когато компютърът се рестартира, ще имам запис от него. След това мога да прегледам записа и да видя дали има някаква последователност в него. Пример може да бъде, че той се рестартира на всеки половин час или се рестартира всеки път, когато има увеличение или 45 на часовника. Това в никакъв случай не е единственият начин да проверявам през компютъра, само за да знаете. Имам и програма за сравнителен анализ, за да проверя темповете, така че знам колко е горещо, когато се изключи, напрежението, така че да знам дали захранването се повреди и няколко други полезни неща. Е, надявам се това да е било полезно. Знам, че ми харесва, така че може би и на други ще им хареса. Ако имате въпроси, не се колебайте да попитате. Може да не стигна до тях веднага, но след малко и ще ви отговоря. Зависи как ми мина денят/седмицата.

Стъпка 13: Кодът

Кодът
Кодът

Това е кодът, написан без всички подсказки и забележки. Const forReading = 1, forWriting = 2, ForAppending = 8Задайте objFiSyOb = CreateObject ("Scripting. FileSystemObject") Ако objFiSyOb. FolderExists (strDir) След това задайте objSysFold = objFiSyOb. GotsFirld (StrDirFolder) objFiSyOb. FileExists (strDir & strFile) След това задайте objSysFold = objFiSyOb. GetFolder (strDir) Иначе задайте objFile = objFiSyOb. CreateTextFile (strDir & strFile) Wscript. Echo ("Ние създадохме файл с име & "& strFilename &" и го постави в директорията "& strDir & strFile &". ") Прекратете IfEnd IfIf objFiSyOb. FileExists (strDir & strFile) След това задайте objSysFold = objFiSyOb. GetFolder (strDir) Else Задайте objFileObCext (objFiy) strDir & strFile) Wscript. Echo ("Имаме създаде файл с име "& strFileName &" в папката "& strDir &" файл. ") Край Ifset objFile = nothingset objSysFold = nothingSet objTextFile = objFiSyOb. OpenTextFile (strDir & strFile, ForAppending, True) objTextFile. Wy компютър Изключете "& date &" at "& time) objTextFile. CloseWscript. Echo (" Вашият компютър се изключи на "& date &" at "& time) Ако err.number = vbEmpty, тогава задайте objShell = CreateObject (" WScript. Shell ") objShell.run (" Explorer "&" "& strDir &" / shutdown_catcher.txt ") Иначе WScript.echo" Грешка във VBScript: "& err.numberEnd IfWScript. Quit

Препоръчано: