Inhoudsopgave:

VBScript werken met gemonteerde schijven: 6 stappen
VBScript werken met gemonteerde schijven: 6 stappen

Video: VBScript werken met gemonteerde schijven: 6 stappen

Video: VBScript werken met gemonteerde schijven: 6 stappen
Video: Hoe ga je om met je scriptiebegeleider? 2024, November
Anonim
VBScript werkt met gemonteerde schijven
VBScript werkt met gemonteerde schijven
VBScript werkt met gemonteerde schijven
VBScript werkt met gemonteerde schijven

Dit instructable is op aanvraag. Velen van jullie herkennen dit misschien van een eerdere instructable die ik had gedaan, namelijk https://www.instructables.com/id/Intro_to_VB_Script_a_beginners_guide/. Welnu, in die ene vroeg techwiz24 me of je dit kon gebruiken om een netwerkschijf los te koppelen, een afbeelding weer te geven en vervolgens te vragen om de netwerkschijf opnieuw aan te sluiten? en met netwerkschijf bedoel ik een externe hdd. Wanneer het opnieuw verbinding maakt, heb ik het ook nodig om de externe hdd een naam te geven, zoals HDD1e. Ik kan alles krijgen behalve de CMD-commando's ervoor. Ik denk dat je diskpart kunt gebruiken, maar ik weet het niet zeker. Nou, ik zei hem dat ik eraan zou werken en een nieuwe instructable zou maken als ik erachter zou komen. Nou, ik heb het bedacht. Dus hier is het. Als je mijn vorige instructable nog niet hebt gelezen, kun je deze hier vinden. https://www.instructables.com/id/Intro_to_VB_Script_a_beginners_guide/ Ik zou aanraden om het te lezen voordat je dit leest als je het nog niet hebt gelezen, omdat de meeste dingen hetzelfde zullen zijn en ik de basis niet zal herstellen. En omdat lemonie in een van mijn andere instructables klaagde dat "als je wallpapers herhaaldelijk wilt weergeven, dit er nogal slecht uitziet. Het gebruik van ALT-Print Screen zou de dialoogvensters beter weergeven". Ik besloot dat ik geen foto's zou plaatsen die echt iets met de instructable te maken hadden, omdat de instructable sowieso geen visueel iets is en de foto's het niet zouden schaden of helpen, dus waarom de tijd nemen om de screan-opnames te maken, precies zo iemand kan klagen dat ik ze niet correct heb gescreend. Dus in deze zal elke keuze een achtergrondbehang zijn dat ik leuk vind en schroef of het er slecht uitziet of niet !!!

Stap 1: Onderzoek

Onderzoek
Onderzoek
Onderzoek
Onderzoek

Het eerste dat we moeten doen, is de GUID achterhalen van de harde schijf die we willen verwijderen. De GUID is een Globally Unique IDentifier. Dit zorgt ervoor dat uw computer een specifieke harde schijf kan vinden, ongeacht de stationsletter die eraan is toegewezen. Een gemakkelijke manier om dit te doen is door een CMD-venster te openen en "MOUNTVOL" te typen

Hierdoor wordt de helppagina voor Mountvol weergegeven. Als u naar de onderkant van de lijst kijkt, zou deze alle beschikbare harde schijven, hun stationsletters en hun paden moeten tonen. Door dit op de mijne te doen, heb ik deze informatie verzameld: Creëert, verwijdert of vermeldt een volume-aankoppelpunt. MOUNTVOL [station:]pad Volumenaam MOUNTVOL [station:]pad /D MOUNTVOL [station:]pad /L pad Specificeert de bestaande NTFS-directory waar het koppelpunt zich zal bevinden. VolumeName Specificeert de volumenaam die het doel is van het koppelpunt. /D Verwijdert het volumekoppelpunt uit de opgegeven map. /L Geeft de naam van het aangekoppelde volume weer voor de opgegeven map. Mogelijke waarden voor VolumeName samen met de huidige koppelpunten zijn: \?\Volume{6ad2db35-4ab2-11de-964e-806d6172696f}\ C:\ \?\Volume{6ad2db33-4ab2-11de-964e-806d6172696f}\ D: / \?\Volume{6ad2db34-4ab2-11de-964e-806d6172696f}\ E:\ \?\Volume{b76a1f58-662f-11de-8a61-001111cb3c76}\ F:\ \?\Volume{6ad2db32-4ab2 -11de-964e-806d6172696f}\ A:\ \?\Volume{c0ea045c-56fe-11de-8a5a-001111cb3c76}\ G:\ _ Als je nu naar de onderkant van de lijst kijkt, zie je een hoop gobbledygook die begint met \?\volume en eindigt met een stationsletter. Dit is wat we nodig hebben! Oké, dus laten we uitsplitsen wat we hier hebben: we hebben volume vertegenwoordigd door \?\volume, dan hebben we een accolade en dan een aantal cijfers, letters en streepjes. De cijfers letters en streepjes zijn eigenlijk de GUID voor de schijf in kwestie, dan hebben we nog een accolade dan een schuine streep naar achteren en de stationsletter. Dus dat zou gemakkelijk genoeg moeten zijn om te volgen. Dus in mijn computer heb ik \?\Volume{6ad2db35-4ab2-11de-964e-806d5172696f}\ C:\ dit is mijn belangrijkste harde schijf voor de computer \?\Volume{6ad2db33-4ab2-11de-964e-806d5172696f }\ D:\ Wat is een dvd-writer \?\Volume{6ad2db34-4ab2-11de-964e-806d5172696f}\ E:\ Een andere dvd-writer \?\Volume{b76a1f58-662f-11de-8a61-001114cb3c76}\ F:\ Een nep-dvd zodat ik ISO-bestanden kan aankoppelen, ik heb een Daemon-programma gemaakt. Ik heb \?\Volume{6ad2db32-4ab2-11de-954e-806d6172696f}\ A:\ Een 3,5-diskettestation…. Ja, ik weet het, maar helaas gebruik ik ze nog steeds af en toe. \?\Volume{c0ea045c-56fe-11de-8a5a-001111cb3c76}\ G:\ Dit hier is de schijf in kwestie die ik wil verwijderen. In dit geval is het eigenlijk een 128meg sprongschijf die ik heb gebruikt voor het testen. Op deze manier, als ik het verknoeide, verloor ik geen harde schijf of zoiets.

Stap 2: Mountvol gebruiken

Mountvol gebruiken
Mountvol gebruiken
Mountvol gebruiken
Mountvol gebruiken

Oké, nu we de GUID hebben, kunnen we deze gebruiken om de schijf in kwestie te koppelen en te ontkoppelen. Voordat we al het werk gaan doen om een script te schrijven, willen we zeker weten dat het werkt en de juiste schijf is. g drive is de drive waarmee ik werk, dus de mijne zal g:\ zeggen, maar u moet de stationsletter invoeren van de drive waarmee u wakker wordt. hetzelfde met de GUID, omdat deze uniek is voor elke schijf en die van jou NIET hetzelfde zal zijn als de mijne. We zullen in principe gewoon een verwijderschakelaar "/ d" gebruiken om het aankoppelpunt te verwijderen en vervolgens het aankoppelcommando gebruiken om het opnieuw te koppelen met behulp van de guid als een verwijzing naar de niet-gemounte schijf. Dus open een cmd-prompt door naar run te gaan en cmdat in te typen, typ in:mountvol g:\ /dnow als we mountvol in de prompt typen, is alles hetzelfde, behalve dat er nu staat: \?\ Volume{c0ea045c-56fe-11de-8a5a-001111cb3c76}\ *** GEEN MONTEERPUNTEN ***in plaats van \?\Volume{c0ea045c-56fe-11de-8a5a-001111cb3c76}\ G:\Dit is goed, het betekent dat we verwijderde degene die we wilden. Nu moeten we het opnieuw koppelen Typ dit bij de opdrachtprompt:mountvol g: \?\Volume{c0ea045c-56fe-11de-8a5a-001111cb3c76}\en typ vervolgens mountvol nog een keer en alles zou terug moeten zijn zoals het was De context voor het opnieuw inschakelen van de schijf is als volgt: het woord mountvol gevolgd door een spatie, dan de stationsletter en een dubbele punt gevolgd door een spatie, dan een backslash, een backslash, een vraagteken, een backslash, dan het woord volume, dan een open accolade, dan de GUID en dan een close accolade dan een backslash

Stap 3: Werken met labels

Werken met labels
Werken met labels
Werken met labels
Werken met labels

Een deel van wat techwiz24 me vroeg, was dat wanneer het opnieuw verbinding maakt, ik het ook nodig heb om de externe hdd een naam te geven, zoals HDD1e.

Om dat te doen gebruiken we gewoon het label-commando, het is vrij eenvoudig. Breng gewoon een opdrachtvenster op hetzelfde als de vorige keer en typ: g: Dit zal uw map veranderen in g:> Typ vervolgens vol en neem niet het volumelabel. Typ dan gewoon label en hoe je het ook wilt noemen, dus als ik mijn harde schijf bobby wilde noemen, typte ik: label bobby Typ dan gewoon vol opnieuw en het zal de nieuwe naam van het volume laten zien is bobby Dat werkt alleen als je aan het werk bent in de map van het volume dat u wilt wijzigen, maar als we ons script maken, willen we de map niet wijzigen en dan het volume wijzigen, zodat we gewoon typen: label g: bobby Ik zei toch dat het heel eenvoudig was.

Stap 4: toevoegen wat we hebben geleerd in het script

Wat we hebben geleerd toevoegen aan het script
Wat we hebben geleerd toevoegen aan het script
Wat we hebben geleerd toevoegen aan het script
Wat we hebben geleerd toevoegen aan het script

Oké, dus nu maken we ons script zoals we eerder deden, maar in plaats van ipconfig-opdrachten te gebruiken, gebruiken we nu mountvol-opdrachten. Hier is de code voor het uitschakelen van de schijf: set shellobj = CreateObject ("WScript. Shell") shellobj.run "cmd"wscript.sleep 200shellobj.sendkeys "mountvol g:\ /d{enter}"_Je zou dit alles tot nu toe moeten begrijpen van onze kleine tests. Hier is de code om een afbeelding te openen zoals hij wilde en het eerste opdrachtpromptvenster te sluiten: wscript.sleep 2000shellobj.sendkeys "c:\3.jpg{enter}exit{enter}"_Zoals u kunt zien, kunt u meerdere opdrachten aan één regel toevoegen zolang het venster nog open is. Het zal wachten tot de laatste opdracht is uitgevoerd voordat de volgende wordt gestart. Hier is de code voor de pop-upvensters zodat uw script actief blijft totdat u de schijf opnieuw inschakelt:Dim MyVarmyvar=2while myvar=2MyVar = MsgBox ("Turn drive back back on", 65, "Turn drive back on")wendmsgbox("We will now Turn drive back on!!!")_Merk op dat door de Myvar-variabele = to 2 te maken, wat de waarde is van de annuleerknop in het berichtvenster we zullen een continue lus uitvoeren totdat de ok-knop wordt ingedrukt. Dit dwingt ons om op ja te klikken om het script te beëindigen. Pas nadat ja is gepusht, verandert de myval-waarde in 1 en kan de lus worden verbroken, waardoor het script wordt voortgezet en het berichtvenster wordt weergegeven met de mededeling dat de schijf dan opnieuw wordt ingeschakeld. Als je je nu herinnert van vroeger, zal het de volgende opdracht niet uitvoeren totdat de laatste opdracht is voltooid, dus totdat de ok-knop in het berichtenvenster wordt ingedrukt, wordt er geen actie ondernomen. Ja, we kunnen gewoon de berichtenbox gebruiken om de schijf opnieuw in te schakelen, maar als u het nog niet wilt inschakelen, maar per ongeluk op ok klikt, is er geen beveiliging. Met het ja/nee-vak heeft u geen andere keuze dan op ja te klikken. We zouden de extra berichtenbox kunnen verwijderen, maar ik vind het prettig om een bevestiging te hebben dat de actie wordt ondernomen. Nu komen we waar het opnieuw monteren, labelen en opruimen is gedaan. Je zou denken dat dit gewoon rechttoe rechtaan is, maar dat is het niet. Als je merkt dat elke keer dat we een enter- of tab-toets in onze sendkeys-regel willen plaatsen, we gewoon {ENTER} typen. De reden hiervoor is dat het de { en } als speciale tekens ziet. Daarom, als we de haakjes gebruiken zoals ze zijn afgedrukt in de guid {c0ea045c-56fe-11de-8a5a-001111cb3c76}, zou het commando sendkeys normaal gesproken op de knop c0ea045c-56fe-11de-8a5a-001111cb3c76 drukken. Aangezien er niet zo'n knop is, zou ons script crashen en vervolgens geen opnieuw gemounte schijf voor ons. Dus hoe komen we daar omheen? Ironisch genoeg staat het antwoord tussen de haakjes zelf. Aangezien alles wat zich tussen de accolades openen en sluiten bevindt, in wezen als een ingedrukte toets wordt verzonden, plaatsen we gewoon de beugel die we willen tussen de accolades openen en sluiten. Dus een open zou {{} zijn en een sluiting zou {}}Dus nu zou het einde van onze code er als volgt uitzien:shellobj.run "cmd"wscript.sleep 200shellobj.sendkeys "mountvol g: \?\Volume{ {}c0ea045c-56fe-11de-8a5a-001111cb3c76{}}\{enter}label g: HDD1e{enter}taskkill /F /IM rundll32.exe{enter}exit{enter}"

Stap 5: Het voltooide script

Het voltooide script
Het voltooide script
Het voltooide script
Het voltooide script

Hier is het voltooide script zonder onderbrekingen dat je gewoon in je script kunt schuiven en ermee klaar bent. U moet de regel die naar de afbeelding verwijst omleiden naar een afbeelding die u wilt in een map die u wilt, maar onthoud dat u geen map gebruikt op het volume dat u verwijdert, anders crasht het omdat het het niet in de map zal vinden. Onthoud ook dat u de stationsletters en GUID moet wijzigen in uw echte, omdat deze de mijne weerspiegelen en mogelijk uw systeem kunnen verpesten. Zoek naar de Rem-regels voor de regel die u moet wijzigen en het zou goed moeten komen:set shellobj = CreateObject("WScript. Shell")shellobj.run "cmd"wscript.sleep 200rem verander de volgende regel om de stationsletter van uw driveshellobj.sendkeys "mountvol g:\ /d{enter}"wscript.sleep 2000rem verander de volgende regel om de werkelijke naam en directory van de afbeelding weer te geven die u gebruikt shellobj.sendkeys "c:\3.jpg{enter}exit{enter} "Dim MyVarmyvar=2while myvar=2MyVar = MsgBox ("Turn drive back on", 65, "Turn drive back on")wendmsgbox("We zetten de harde schijf nu weer aan!!!") shellobj.run "cmd"wscript.sleep 200rem verander de GUID in uw werkelijke GUID en de stationsletters (beide) in de werkelijke stationsrem-letter en het label in een willekeurig label dat u wilt dat de schijf wordt gelabeld shellobj.sendkeys "mountvol g: \?\Volume {{}c0ea045c-56fe-11de-8a5a-001111cb3c76{}}\{enter}label g: HDD1e{enter}taskkill /F /IM rundll32.exe{enter}exit{enter}"

Stap 6: Geen stappen Echt alleen een opmerking

Geen stappen Echt alleen een reactie
Geen stappen Echt alleen een reactie

Nou, ik hoop dat het je heeft geholpen…. Als iets niet goed genoeg is uitgelegd, laat het me weten en ik zal proberen het beter uit te leggen. En ik hoop dat iedereen de achtergronden leuk vond. Nee ik heb ze niet gemaakt… ze zijn allemaal degenen die ik op het net heb gevonden.

OPMERKING: Als iemand klachten heeft over mijn instructable, stuur deze dan door naar [email protected]. Ik bedoel serieus, denk je echt dat het mij kan schelen wat jij denkt? Als je iets niet wilt leren, doe het dan niet, maar wees geen eikel en klaag niet omdat de niet-essentiële foto's niet correct zijn geformatteerd of wat dan ook de oorzaak is, eerlijk gezegd kan het me niet schelen!!!

Aanbevolen: