Taula de continguts:

Introducció a VB Script: una guia per a principiants: 2a part: Treballar amb fitxers: 13 passos
Introducció a VB Script: una guia per a principiants: 2a part: Treballar amb fitxers: 13 passos

Vídeo: Introducció a VB Script: una guia per a principiants: 2a part: Treballar amb fitxers: 13 passos

Vídeo: Introducció a VB Script: una guia per a principiants: 2a part: Treballar amb fitxers: 13 passos
Vídeo: Полное руководство по Google Forms - универсальный инструмент для опросов и сбора данных онлайн! 2024, Juliol
Anonim
Introducció a VB Script: una guia per a principiants: Part 2: Treballar amb fitxers
Introducció a VB Script: una guia per a principiants: Part 2: Treballar amb fitxers

Bé, en la meva última instrucció de VBScript, vaig repassar com fer un script per apagar Internet per reproduir Xbox360. Avui tinc un problema diferent. L’ordinador s’ha apagat a l’atzar i vull iniciar la sessió cada vegada que l’ordinador es reinicia en un fitxer. Tinc la sensació que el problema és la targeta de vídeo, però vull assegurar-me. Deixo l’ordinador encesa en tot moment però no el puc supervisar les 24 hores del dia, de manera que la meva solució més senzilla és escriure una marca de temps en un fitxer cada cop que es reinicia. Com que em proporciona un BSOD cada cop, el registre quan es tanqui serà difícil, de manera que he d’aconseguir-lo quan es torni a engegar. Aquesta és la part més senzilla. A causa del fet que això només és temporal fins que no entenc què passa amb l'ordinador, no escriure al registre ni convertir-lo en un servei, de manera que s'iniciarà en arrencar. I per aconseguir que es reiniciï cada vegada que s'apaga, hauré d'editar la bios.

Pas 1: Edició de la versió biològica per aconseguir que es reiniciï en cas d’alimentació

S'està editant la versió biològica perquè es reiniciï en cas d'alimentació
S'està editant la versió biològica perquè es reiniciï en cas d'alimentació

No estic segur de si el meu problema és amb la fallada de la font d'alimentació o amb la targeta de vídeo o amb què es tracta. Però sé que l’ordinador es reinicia cada cert temps. Per tant, per assegurar-me que es reiniciï després d’una fallada d’alimentació (IE: la font d’alimentació s’esfuma), vull editar la bios. A causa del fet que hi ha tants fabricants de bios diferents, seria massa difícil enumerar totes les maneres de fer-ho en totes les pantalles de bios, així que us donaré els fonaments bàsics i us deixaré esbrinar bàsicament per accedir a la vostra biografia, haureu de prémer un botó a l’arrencada. Normalment es dirà com "premeu Del per entrar a la configuració" o "F2". Diferents fabricants us ofereixen diferents maneres, però normalment són la tecla "F2" o la tecla "Supr". Sigui com sigui, vigileu i premeu la tecla que us indica. Ara arribareu a una pantalla que sol ser gris o blava, però de nou depèn de la vostra marca de bios. Cerqueu una opció de configuració d’alimentació. Es mostrarà en una finestra pròpia, com a la captura de pantalla AMIBIOS (manllevada de la guia de maquinari de Tom) o en algunes, pot ser en una finestra avançada de funcions de bios. De totes maneres, esteu cercant una configuració de "restauració en pèrdua de corrent altern / corrent". Es pot anomenar una altra cosa, però estarà a prop d'això. Només cal buscar-lo. Normalment tindrà tres opcions (últim estat, activat després de la pèrdua d’alimentació, apagat després de la pèrdua d’alimentació). El voleu activar després de la pèrdua d'energia. Assegureu-vos de desar la configuració i sortir de la biografia. Ara, quan la vostra alimentació falla o desconnecteu la màquina, es reiniciarà tan bon punt es torni a alimentar. Sí, sí, !!!!!!!!!!!!!!!!

Pas 2: Redacció de l'script Primera part: elaboració d'un pla

Escriure el guió Part 1: elaborar un pla
Escriure el guió Part 1: elaborar un pla
Escriure el guió Part 1: elaborar un pla
Escriure el guió Part 1: elaborar un pla
Escriure el guió Part 1: elaborar un pla
Escriure el guió Part 1: elaborar un pla
Escriure el guió Part 1: elaborar un pla
Escriure el guió Part 1: elaborar un pla

El primer que volem fer és crear un pla. Què volem que faci exactament l'script. A.) Quan falla l'alimentació o apareix el BSOD, volem que es reiniciï. (Atenció al pas 1 Edició del BiosB.) Tan bon punt es reiniciï, volem escriure en un fitxer la data i hora exactes en què es va reiniciar. C.) Volem poder esmenar aquest fitxer. Si es reinicia més d'una vegada, no ho sabríem mai. D.) Volem que tingui correcció d'errors, de manera que no es cargolarà i ens assegurem que rebem tots els nostres reinicis sense perdre'ls a causa d'una mala codificació. E. per mostrar un missatge que diu que es va reiniciar. F.) Volem que obri el fitxer al qual vam escriure perquè puguem veure una llista de tots els reinicis quan fem clic a D'acord al missatge emergent.

Pas 3: Escriptura de l'script Part 2: Creació de l'script i assignació de les variables

Escriptura de l'script 2a part: Creació d'un script i assignació de variables
Escriptura de l'script 2a part: Creació d'un script i assignació de variables

D'acord, primer, creeu un document de text i canvieu-lo pel nom a any_name.vbs. He utilitzat shutdown_catcher.vbs, però podeu utilitzar qualsevol cosa. Ara només heu de fer clic amb el botó dret del ratolí al fitxer vbs i prémer edit. Si utilitzeu notepad ++ ara seria un bon moment per obrir-lo, si no teniu previst fer cap quantitat de codificació Ara, el primer que volem fer és crear variables. Les variables són bàsicament només un lloc, de manera que no hem d’escriure un munt de coses un munt de vegades. exemple: tenim una frase que diu "la guineu marró ràpida salta per sobre dels gossos mandrosos cap enrere". però és al nostre codi 20 vegades. podem escriure tota la frase 20 vegades o crear una variable i assignar la frase a aquesta variable. Per tant, en aquest exemple creem la variable strSentence i després assignem "la ràpida guineu marró que salta per sobre dels gossos mandrosos" a aquesta variable. Ara tot el que hem de fer és escriure strSentence cada vegada que necessitem la frase i sap escriure "la guineu marró ràpida salta per sobre dels gossos mandrosos cap enrere", com ho fem: si tenim diverses variables del mateix tipus, podem posar a la mateixa línia i separeu les variables per comes. Per crear una variable hem de fer el que s’anomena dimensionar la variable. Per fer-ho, escrivim Dim abans de la variable i després posem un prefix a la variable perquè sàpiga què representa la variable. Els exemples són str per a una variable de cadena obj per a una variable d'objecte const per a una constant … La llista continua i continua. Aquests són els que farem servir en aquest script, així que els explicaré una mica. una cadena sol ser text com una frase. Un objecte sol ser quelcom físic com un fitxer o un programa. i una constant és quelcom que sempre tindrà el mateix significat al llarg del guió. NOTA: QUALSEVOL TEMPS QUE UNA LÍNIA TINGUI UNA SOLA ABANS QUE LA LÍNIA SIGUI IGNORADA PER L’ESCRIPT. S’ANOMENEN OBSERVACIONS I EL PROGRAMADOR LA POT INSTAL·LAR NOMÉS PODEN RECORDAR EL QUE HAN FET MÉS TARD AL REVISAR EL CODI. ELS UTILITZARÉ PER FER COMENTARIS SOBRE EL CODI PER PODER VEURE PER QUÈ HEM FET COSES DE LA MANERA QUE VAIG FER. I ESTARAN PER SOBRE LA LÍNIA QUE COMENTEN. Ús real: 'aquesta línia us obliga a definir totes les variables. Sense ella, qualsevol variable no definida es tractarà com a objecte Opció Explicit ara creem 5 variables per a les carpetes i fitxers, les nomenarem com vulgueu, però la convenció és preNameDim objFiSyOb, objSysFold, objShell, objFile, objTextFileNow necessitem per crear variables de cadena per al directori, el fitxer i el nom del fitxer Dim strDir, strFile, strFileName ara assignem valors a les variables "el strDir és el nostre directori volem la carpeta a strDir =" C: / Catcher "'el fitxer str és on volem el document de text i el seu nomstrFile = "\ Shutdown_catcher.txt" 'el nom del fitxer str és així que tenim el nom del fitxer per utilitzar a pop upsstrFileName = "Shutdown_catcher.txt"' a continuació hem d'assignar una constant per accedir al Arxiu que tenim tres opcions: només farem servir l’annex en aquest codi, però és bo saber-ne totes. objecte perquè el puguem trucar més endavant quan ho necessitem Establir objFiS yOb = CreateObject ("Scripting. FileSystemObject")

Pas 4: explicacions entremig

Explicacions entremig
Explicacions entremig

Ara que tenim les nostres variables dimensionades, només hem de recordar cada variable específica. Això no només redueix la quantitat d’escriptures que fem, sinó que també genera menys errors a causa de les faltes d’ortografia. Ara tècnicament, tot el que hem de fer és escriure el següent codi i ja hem acabat “establir el fitxer per appendingSet objTextFile = objFiSyOb. OpenTextFile (strDir & strFile, ForAppending, True) 'escriviu la nova línia al fitxerobjTextFile. WriteLine ("Apagueu l'ordinador a" & data & "a" i l'hora) "tanqueu el fitxerobjTextFile. Tancar feu una finestra emergentWscript. Echo (" El vostre ordinador Apagueu "& data &" a "i hora) 'obriu el fitxer a IESet objShell = CreateObject (" WScript. Shell ") objShell.run (" Explorer "&" "& strDir &" / shutdown_catcher.txt ") El problema és que no tindrà cap correcció d'errors i qualsevol error simple, com ara un fitxer que no existeix o una variable ja assignada, bloquejarà l'script.

Pas 5: escriptura de l'script 3a part: declaracions If Then com a correcció d'errors

Escriptura de la secció 3: declaracions If Then com a correcció d'errors
Escriptura de la secció 3: declaracions If Then com a correcció d'errors

La manera més senzilla de fer la correcció d’errors és fer servir sentències if / then. Bàsicament, una sentència if then diu que si passa alguna cosa, fes això d’una altra manera. Si anideu declaracions if / then, podeu crear una sèrie de coses que han de passar. Si succeeixen a i b i c, fes això, fes això.exemple: volem assegurar-nos que hi hagi el fitxer al qual volem escriure si el trobem no volem fer res si no el trobem volem crear-lo o voleu comprovar si hi ha la carpeta i, si no, la creeu i, a continuació, comproveu si hi ha el fitxer un cop trobem la carpeta i, si no, la creeu, la primera és un exemple d’instrucció if then, la segona és nidificada si llavors. ho fem: hi ha quatre parts en una sentència if then if / then elseend si bàsicament és si això és cert, fes això en cas contrari, fes això i després finalitza la sentència una sentència correcta si llavors seria: Si alguna cosa = alguna cosa Aleshores fes el que heu de fer Feu una altra cosa Feu si podeu utilitzar qualsevol argument sempre que sigui cert, seguirà la part de llavors i ignorarà la part else, però si és falsa, saltarà la llavors i passarà a else Aleshores, quan acabem la sentència if posem "acabar si", però si hem assentat les sentències if hem d'acabar cada sentència if. Els acabarà de fill a pare, de manera que el primer "finalitza si" acaba la sentència if dins del pare, on la segona acaba la sentència original (pare) if. Per fer una finestra emergent, només cal escriure Wscript. Echo ("qualsevol volem dir al missatge ") per afegir-hi un valor de variables, el col·loquem fora o entre cometes dobles utilitzant el signe ampersand (&) com a delimitador perquè l'script sàpiga que és una variable i no un text. com aquest: Wscript. Echo ("Bla bla bla" & strDir & "bla bla bla" & strFilename & "bla bla bla".) La sortida seria una finestra emergent que deia Bla bla bla C: / Catcher bla bla bla shutdown_catcher.txt bla bla bla. Ús real: "si la carpeta C; / existeix Si objFiSyOb. FolderExists (strDir), llavors" obtingueu la carpeta Defineix objSysFold = objFiSyOb. GetFolder (strDir) "en cas contrari, si no, creeu la carpeta c; / catcher Set objSysFold = objFiSyOb. CreateFolder (strDir) 'i comproveu si el fitxer i la carpeta existeixen Si objFiSyOb. FileExists (strDir & strFile) Aleshores, si obté la carpeta c: / catcher Set ob jSysFold = objFiSyOb. GetFolder (strDir) 'elseElse'create text text shutdown_catcher.txt Defineix objFile = objFiSyOb. CreateTextFile (strDir & strFile)' i, a continuació, apareix un missatge per dir que els heu creat tots dos Wscript. Echo ("Hem creat una carpeta anomenat "& strDir &" i un fitxer anomenat "& strFilename &" i el va col·locar al directori "& strDir & strFile &". ") 'final anidat if statementEnd If'end original if statementEnd If If'now now in the first if statement ja hem comprovat si hi ha cap carpeta i l'hem trobat, de manera que ara comprovem si hi ha fitxer If objFiSyOb. FileExists (strDir & strFile) Aleshores, si s'ha trobat la carpeta Establir objectSysFold = objFiSyOb. GetFolder (strDir) 'en cas contrari, creeu el text doc Set objectFile = objFiSyOb. CreateTextFile (strDir & strFile) 'crea una finestra emergent que diu que hem creat el document de text Wscript. Echo ("Hem creat un fitxer anomenat" & strFileName & "a la carpeta de fitxers" & strDir & ".) Finalitza si

Pas 6: explicacions entremig

Explicacions entremig
Explicacions entremig

Si mireu detingudament el codi del pas anterior, veureu tant una sentència imbricada com una no imbricada if then. La primera és una declaració imbricada. Comprova la carpeta i el fitxer i, si no els troba, en crea els dos. El segon només busca un fitxer i, si no el troba, només el crea. Es podria dir per què tots dos. Doncs què passa si s'elimina l'arxiu, però la carpeta no. La primera sentència if saltaria a la dreta sobre la creació del fitxer perquè trobava la carpeta i mai no actuaria la part altra de la sentència. Per tant, quan anéssiu a escriure al fitxer, s’erraria perquè faltaria el fitxer. Per tant, tenint-hi el segon, es resol aquest problema. Tècnicament podríeu treure la declaració imbricada perquè és gairebé la mateixa que la sentència second if then, però només tindríeu una finestra emergent i no seria tan agradable, a més em va donar l'oportunitat de mostrar-vos anidat en lloc de -nidats enunciats if.

Pas 7: Més correcció d'errors

Més correcció d'errors
Més correcció d'errors

Ara que hem completat la majoria de la correcció d’errors, volem escriure al fitxer i mostrar les finestres emergents. El problema és que obtindrem errors de permís si no alliberem la referència de l’objecte anterior emmagatzemat a la variable. Per tant, volem introduir un petit fragment de codi que digui que les variables no es defineixen a res, es veu així: set objectFile = nothingset objSysFold = nothing out): Opció ExplicitDim objFiSyOb, objSysFold, objShell, objFile, objTextFileDim strDir, strFile, strFileNamestrDir = "C: / Catcher" strFile = "\ Shutdown_catcher.txt" strFileName = "Shutdown_catcher =, 1 ForAppending = 8Set objFiSyOb = CreateObject ("Scripting. FileSystemObject") If objFiSyOb. FolderExists (strDir) Set Set objSysFold = objFiSyOb. GetFolder (strDir) Else Set objSysFold = objFiSyOb. CreateFold (strDirS) Estableix objSysFold = objFiSyOb. GetFolder (strDir) Altres Establir objectFile = objFiSyOb. CreateTextFile (strDir & strFile) Wscript. Echo ("Hem creat una carpeta anomenada" & strDir & "i un fitxer anomenat" & strFilename & "i el vam col·locar a el directori "& strDir & strFile &". ") Fi I fEnd IfIf objFiSyOb. FileExists (strDir & strFile) Aleshores Defineix objSysFold = objFiSyOb. GetFolder (strDir) Else Establir objFile = objFiSyOb. CreateTextFile (strDir & strFile) Wscript. Echo ("Hem creat un fitxer anomenat & Carpeta de fitxers "& strDir &". ") Finalitza Ifset objFile = nothingset objSysFold = res

Pas 8: Escriptura de l'script Part 4: Configuració d'atributs

Escriptura de l’escriptura Part 4: Configuració d’atributs
Escriptura de l’escriptura Part 4: Configuració d’atributs

Ara hem d’establir els atributs al fitxer per poder modificar-lo. Anteriorment establíem tres variables constants: forReading = 1forWriting = 2 forAppending = 8 si ho definiu per a Reading, podreu llegir-lo però no escriure-hi.. Si el configureu com a per afegir, afegirà una nova línia cada vegada que s’executi l’escriptura al document. Com que volem un registre de cada cop que es reinicia, volem que s’afegeixi i no s’escrigui de manera que ho fem servir per afegir.: heu de posar nom a l'objecte al qual vulgueu establir els atributs. Com que ja hem fet la major part del treball en els passos anteriors, només cal recordar variables en aquest moment. A continuació, només cal establir-lo a true. Ús real: 'object to set = filesystemobject.action (directori + nom del fitxer, atribut, true o false) Establir objectTextFile = objFiSyOb. OpenTextFile (strDir & strFile, ForAppending, True)

Pas 9: escriure l'script Part 5: escriure al fitxer

Escriptura de l'script Part 5: Escriptura a fitxer
Escriptura de l'script Part 5: Escriptura a fitxer

Escriure en un fitxer s’assembla molt a escriure una finestra emergent. Només heu de posar: objTextFile. WriteLine ("El que vulgueu dir" i variable per treure per escriure la línia) L'única diferència és la primera part. WriteLine I, en una línia d'escriptura, heu de tancar la línia d'escriptura perquè sàpiga deixar d'escriure i, per a això, utilitzeu: objTextFile. CloseActual Use: objTextFile. WriteLine ("El vostre ordinador s'apaga" i data & "a" i hora) objTextFile.close'now afegiu una finestra emergent per dir que heu escrit al fitxer perquè la persona sàpiga que ha passat i que l'han de tancar per obrir el fitxer i visualitzarWscript. Echo ("L'ordinador s'apaga" i data & "a" & temps)

Pas 10: Escriptura de l'script Part 5: Obertura del fitxer per a la visualització

Escriptura de l'script Part 5: Obertura del fitxer per a la visualització
Escriptura de l'script Part 5: Obertura del fitxer per a la visualització

En aquest moment, l'script s'aturarà fins que algú faci clic a la finestra emergent. Un cop superada la finestra emergent, podeu posar una línia que obri el fitxer. Si feu servir alguna correcció d’errors, el programa s’executa molt bé. Quan creeu un error a vbscript, afegeix un valor a la variable "err.number", que és una variable predefinida a vbscript. No l'heu de definir i el podeu utilitzar com qualsevol altra variable sempre que no infringiu les seves regles. El valor assignat a la variable err.number és el codi de l'error que s'ha produït. Ara podeu comprovar cada codi d'error conegut a la base de dades vbscript i assegurar-vos que no es produeixi. O més fàcil, només és comprovar que assegureu-vos que la variable err.number està buida. si està buit no es van produir errors. Per fer-ho, només comprovem si la variable és igual a vbEmpty. Per tant, al nostre script volem utilitzar una altra sentència if then. I comproveu si s’ha produït un error i si no obre el fitxer per visualitzar-lo, però si apareix un missatge amb el número d’error perquè puguem depurar-lo. escriviu Wscript. Quit. Això indica a l'script que s'acabi. Això ajuda a mantenir les fuites de memòria i els processos no desitjats en execució. errorsIf err.number = vbEmpty then'if none create a shell Set objectShell = CreateObject ("WScript. Shell") 'then open the file from that shell using explorer. en realitat s'obrirà a IE, tot i que objShell.run ("Explorer" & "" & strDir & "\ shutdown_catcher.txt") ', en cas contrari, apareixerà un missatge amb el número d'error. 'end scriptWscript.quit

Pas 11: Com executar l'script a l'inici

Com es pot executar l'script a l'inici
Com es pot executar l'script a l'inici

Al menú d’inici hi ha una carpeta de fitxers anomenada Inici. Qualsevol cosa que es col·loqui en aquesta carpeta s'iniciarà tan aviat com s'iniciï l'ordinador. Si col·loqueu el fitxer de seqüències a la carpeta d’inici s’executarà cada cop que es reiniciï l’ordinador, sigui intencionat o no. Com que només estic fent servir això com a eina de diagnòstic, no cal convertir-lo en un servei per iniciar-lo, i no cal que el poseu al registre per iniciar-lo, de manera que estarà bé. Un cop arreglat l’ordinador, puc eliminar el fitxer de la carpeta d’inici i no cal fer cap altra neteja.

Pas 12: Execució del programa

Execució del programa
Execució del programa
Execució del programa
Execució del programa
Execució del programa
Execució del programa

Quan executeu el fitxer vbscript, ara es farà A.) Comproveu si la carpeta C: / Catcher existeix i si no la creeu. B:) Comproveu si el fitxer Shutdown_catcher.txt existeix i si no el creeu.) Si ha creat una carpeta o un fitxer o tots dos, apareixerà un missatge que diu que sí que els ha creat (Nota: només hauria de fer-ho a la primera execució després que ja hi hauria estat tret que s'hagi suprimit, de manera que només hauríeu de veure aquest missatge una vegada. Podria ser una bona idea executar aquest script un cop reiniciat de manera controlada per evitar aquestes finestres emergents o no escriure res al fitxer perquè no passa per alt el fitxer emergent creat.) D:) Escriviu una línia a la document de text Shutdown_Catcher.txt en què s’indica que l’ordinador s’ha apagat en tal data, a tal hora. veureu el codi tal com està escrit. Ara tot el que he de fer és seure i esperar. Cada cop que es reiniciï l'ordinador en tindré un registre. Després puc revisar el registre i veure si hi ha consistència. L'exemple pot ser que es reiniciï cada mitja hora o es reiniciï cada vegada que hi hagi un increment o 45 al rellotge. Aquesta no és, de cap manera, l'única manera de comprovar l'ordinador, perquè ho sàpiga. També tinc un programa de comparació en execució per comprovar els temps, així que sé la calor que fa quan s'apaga, la tensió, així que sé si la font d'alimentació està fallant, i algunes altres coses útils. Bé, espero que sigui útil. Sé que ho gaudeixo, així que potser també ho faran d’altres. Si teniu alguna pregunta, no dubteu a fer-ho. És possible que no hi arribi immediatament, però amb una mica i us respondré. Depèn de com estigui el dia / setmana.

Pas 13: el codi

El codi
El codi

Aquest és el codi escrit sense tots els suggeriments i comentaris. Const forReading = 1, forWriting = 2, ForAppending = 8Set objFiSyOb = CreateObject ("Scripting. FileSystemObject") If objFiSyOb. FolderExists (strDir) Then Set objSysFold = objFiSyOb. GetFolder (strDir) Else Set objSysFold (StrDir) objFiSyOb. FileExists (strDir & strFile) A continuació, configureu objSysFold = objFiSyOb. GetFolder (strDir) Else Set objFile = objFiSyOb. CreateTextFile (strDir & strFile) Wscript. Echo ("Hem creat una carpeta anomenada" & strDir & "i "& strFilename &" i el va col·locar al directori "& strDir & strFile &". ") Finalitza IfEnd IfIf objFiSyOb. FileExists (strDir & strFile) A continuació, defineix objSysFold = objFiSyOb. GetFolder (strDir) Else Set objFile = objFiSyOb. Crea strDir & strFile) Wscript. Echo ("Tenim ha creat un fitxer anomenat "& strFileName &" a la carpeta de fitxers "& strDir &". ") Fin Ifset objFile = nothingset objSysFold = nothingSet objTextFile = objFiSyOb. OpenTextFile (strDir & strFile, ForAppending, True) objTextFile. WriteLine (" El vostre ordinador Apagueu a "& data &" a "i a l'hora) objTextFile. CloseWscript. Echo (" Apagueu l'ordinador "a & data &" a "i hora) Si err.number = vbEmpty, definiu objShell = CreateObject (" WScript. Shell ") objShell.run (" Explorer "&" "& strDir &" / shutdown_catcher.txt ") Altres WScript.echo" Error VBScript: "& err.numberEnd IfWScript. Quit

Recomanat: