{"id":275410,"date":"2023-10-23T16:39:00","date_gmt":"2023-10-23T13:39:00","guid":{"rendered":"https:\/\/howto.mediadoma.com\/?p=275410"},"modified":"2025-03-14T18:21:03","modified_gmt":"2025-03-14T15:21:03","slug":"5-if-uttalelser-som-skal-brukes-for-smartere-windows-batch-skript","status":"publish","type":"post","link":"https:\/\/howto.mediadoma.com\/no\/5-if-uttalelser-som-skal-brukes-for-smartere-windows-batch-skript\/","title":{"rendered":"5 IF-uttalelser som skal brukes for smartere Windows Batch-skript"},"content":{"rendered":"\n<p>Hvis du gj\u00f8r mye arbeid i Windows batch-filer, tilbyr IF-setningen en veldig kraftig m\u00e5te \u00e5 legge til fleksibilitet til skriptene dine.<\/p>\n<p>I denne artikkelen skal du l\u00e6re om fem hovedtyper IF-setninger du kan bruke i en Windows-batchfil, hvordan den riktige syntaksen ser ut, og et realistisk eksempel for hver.<\/p>\n<p>Hvis du er klar til \u00e5 begynne \u00e5 skrive skript, la oss komme i gang.<\/p>\n<h2>1 Sammenlign verdier<\/h2>\n<p>En av de grunnleggende tingene du vanligvis trenger \u00e5 gj\u00f8re i et batch-skript er \u00e5 sammenligne to verdier og f\u00f8lge en annen handling avhengig av sammenligningen.<\/p>\n<p>La oss for eksempel si at du vil skrive et batchskript som kontrollerer datamaskinens harddiskst\u00f8rrelse daglig. Hvis det er under 3 GB, vil du ha en e-postrapport som sier &quot;Harddiskplass for lite.&quot;<\/p>\n<p>For \u00e5 lage et skript som sammenligner den n\u00e5v\u00e6rende ledige harddiskplassen med grensen din, m\u00e5 du lage f\u00f8lgende batchskript og lagre det som en .bat-fil.<\/p>\n<pre><code>@echo offset DriveLimit=300000000for \/f \"usebackq delims== tokens=2\" %%x in (`wmic logicaldisk where \"DeviceID='C:'\" get FreeSpace \/format:value`) do set FreeSpace=%%xEcho FreeSpace=\"%FreeSpace%\"Echo Limit=\"%DriveLimit%\"If %FreeSpace% GTR %DriveLimit% (Echo There is enough free space.) else (Echo Not enough free space.)<\/code><\/pre>\n<p>I skriptet er <strong>WMIC<\/strong> Windows Management Instrumentation-komponenten (WMI) i Windows som kommer med et utvalg kommandoer du kan bruke til \u00e5 hente informasjon fra PC-en.<\/p>\n<p>Dette er hvordan &quot;wmic&quot;-kommandoen i dette skriptet kaller <strong>logicaldisk<\/strong> space og plasserer den i <strong>FreeSpace<\/strong> &#8211; variabelen.<\/p>\n<p>N\u00e5 kan du bare erstatte linjen <strong>Echo Ikke nok ledig plass<\/strong> med en kommando for \u00e5 sende deg et varsel via e-post. Sett skriptet til \u00e5 kj\u00f8re daglig.<\/p>\n<h2>2 strengsammenlikninger<\/h2>\n<p>En annen verdifull IF-sammenligning du kan gj\u00f8re i en batch-jobb er \u00e5 sammenligne strenger.<\/p>\n<p>I det f\u00f8lgende eksempelet vil du se hvordan du sjekker Windows-versjonen din ved hjelp av en batchjobb. Deretter kan du sammenligne dette med din forventede Windows-versjon.<\/p>\n<p>Noen bruksomr\u00e5der for dette skriptet vil v\u00e6re for IT-revisjoner n\u00e5r du raskt m\u00e5 kj\u00f8re et skript og s\u00f8rge for at det gjeldende operativsystemet er det nyeste eller om det trenger en oppgradering.<\/p>\n<p>Slik ser dette skriptet ut:<\/p>\n<pre><code>@echo offfor \/f \"tokens=4-5 delims=. \" %%i in ('ver') do set VERSION=%%i.%%jif \"%version%\" == \"6.0\" echo Windows Vista.if \"%version%\" == \"6.1\" echo Windows 7if \"%version%\" == \"6.2\" echo Windows 8if \"%version%\" == \"6.3\" echo Windows 8.1if \"%version%\" == \"10.0\" echo Windows 10.<\/code><\/pre>\n<p>Slik ser utgangen av dette skriptet ut:<\/p>\n<p><a href=\"https:\/\/howto.mediadoma.com\/wp-content\/uploads\/2022\/10\/post-189893-633fa24c02082.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/howto.mediadoma.com\/wp-content\/uploads\/2022\/10\/post-189893-633fa24c02082.png\" alt=\"5 IF-uttalelser som skal brukes for smartere Windows Batch-skript\" ><\/a><\/p>\n<p>Muligheten til \u00e5 sammenligne strenger i en batch \u00e5pner opp en hel liste med muligheter. Hvis du utforsker all <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/aa394531(v=vs.85).aspx\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">informasjonen du kan f\u00e5 fra en WMIC-kommando<\/a>, vil du se hvor mye statistikk om datamaskinen du kan overv\u00e5ke.<\/p>\n<p>Dessuten kan du til og med bruke planlagte batchjobber for \u00e5 f\u00e5 varsler om disse.<\/p>\n<h2>3 Sjekk om det finnes en fil<\/h2>\n<p>En annen nyttig situasjon der en IF-setning i en batchfil er \u00e5 sjekke om det finnes en datafil.<\/p>\n<p>Mange ganger er batchjobben bare et overv\u00e5kingsverkt\u00f8y som du kan planlegge for \u00e5 se etter nye innkommende datafiler i en bestemt katalog. Deretter kan du enten kopiere den filen til et annet sted eller starte et Windows-skript som behandler filen til en Excel-utdata.<\/p>\n<p>Det er raskt og enkelt \u00e5 bruke en batchfil for \u00e5 sjekke om en fil finnes i en katalog. Slik ser det skriptet ut:<\/p>\n<pre><code>@echo offif exist c:tempdatafile.txt (%WINDIR%SysWOW64cmd.exe cscript LoadToExcel.vbs) else (rem file doesn't exist)<\/code><\/pre>\n<p>IF EXISTS-sammenligningen er nyttig for mange ting.<\/p>\n<p>Hvis du for eksempel har et system eller en applikasjon som kj\u00f8rer som oppretter nye feillogger i en bestemt mappe n\u00e5r det er et problem, kan du kj\u00f8re en batchjobb med jevne mellomrom. P\u00e5 denne m\u00e5ten kan du enkelt overv\u00e5ke om det opprettes nye feillogger slik at du kan sende et varsel.<\/p>\n<h2>4 Sjekk om en kommando mislyktes<\/h2>\n<p>Et aspekt ved batch-filskripting som for f\u00e5 IT-folk eller programmerere bruker, er \u00e5 se etter feil.<\/p>\n<p>Det er mange batchjobber som flyter rundt der ute som utf\u00f8rer kritiske IT-oppgaver som \u00e5 sikkerhetskopiere viktige filer eller kj\u00f8re filkopieringsoperasjoner. N\u00e5r disse batchjobbene mislykkes, svikter systemene, og folk legger vanligvis merke til det.<\/p>\n<p>Det er mye smartere \u00e5 f\u00e5 et varsel n\u00e5r batchjobben din har mislyktes med en kommando f\u00f8r folk begynner \u00e5 legge merke til det. P\u00e5 denne m\u00e5ten kan du l\u00f8se problemet proaktivt.<\/p>\n<p>Du kan gj\u00f8re dette ved \u00e5 bruke %errorlevel%-variabelen som de fleste applikasjoner og kommandoer returnerer etter at de er kj\u00f8rt. Alt du trenger \u00e5 gj\u00f8re er \u00e5 f\u00f8lge kommandoen din med kommandoen <strong>IF %ERRORLEVEL%<\/strong>.<\/p>\n<pre><code>@echo offxcopy C:omefolder E:backupfolderIF %ERRORLEVEL% NEQ 0 &lt;blat command to send email&gt;<\/code><\/pre>\n<p>Hvis applikasjonen eller kommandoen returnerer en null, er alt i orden. Hvis ikke, m\u00e5 du sende deg selv en e-post.<\/p>\n<p>Du trenger imidlertid ikke ta e-postruten. Du kan alltid skrive en feillogg som du kan sjekke hver morgen, eller starte en annen applikasjon eller kommando som pr\u00f8ver \u00e5 kopiere med en alternativ kommando.<\/p>\n<p>Dessuten, hvis du heller vil bruke en IF-setning for \u00e5 se etter spesifikke feilkoder, tilbyr Windows en ganske <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms681382(v=vs.85).aspx\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">omfattende liste over systemfeilkoder<\/a>.<\/p>\n<h2>5 Se etter manglende parametere<\/h2>\n<p>Den siste nyttige IF-setningen er ikke for en spesifikk kommando, men i stedet for \u00e5 sjekke at skriptet mottok de riktige inngangsparametrene.<\/p>\n<p>La oss for eksempel si at du har skrevet et skript som utf\u00f8rer en xcopy-kommando fra en inndatamappe til en felles nettverksmappe som brukes av et team. Brukeren trenger bare \u00e5 f\u00f8lge skriptnavnet ditt med parametrene som definerer deres personlige filbane.<\/p>\n<p>Du kan ikke kj\u00f8re skriptet p\u00e5 riktig m\u00e5te uten den angitte banen, s\u00e5 det kan v\u00e6re lurt \u00e5 sette en IF-setning i begynnelsen av skriptet for \u00e5 sikre at begge parameterne er angitt.<\/p>\n<pre><code>@echo offIF [%1]==[] (GOTO sub_message) ELSE (xcopy %1 E:backupfolder)GOTO eof:sub_messageecho You forgot to specify your path.:eof<\/code><\/pre>\n<p>Hvis du aldri har brukt parametere med batchskript f\u00f8r, representerer prosentsymbolet etterfulgt av et tall parametervariabelen. <strong>%1<\/strong> er den f\u00f8rste parameteren, %2 er den andre, og s\u00e5 videre.<\/p>\n<p>Generelt er IF-setninger for nyttige, og du trenger ikke skrive for mange koder for \u00e5 faktisk bruke dem. Selvf\u00f8lgelig, hvis du \u00f8nsker \u00e5 \u00f8ke det et hakk, kan du vurdere \u00e5 ta en titt p\u00e5 VBA med v\u00e5r guide for <a href=\"https:\/\/www.makeuseof.com\/tag\/simple-app-vba\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e5 lage din f\u00f8rste VBA-applikasjon<\/a>.<\/p>\n<h2>Batchjobber kan v\u00e6re kraftige<\/h2>\n<p>Mange begynte \u00e5 bruke batchjobber for enkle oppgaver som m\u00e5 utf\u00f8res sekvensielt. Heldigvis, med IF-setninger, er det mulig \u00e5 legge til langt mer logikk til skriptene dine.<\/p>\n<p>I tillegg kan du ofte bruke mer avanserte programmeringsspr\u00e5k og bruke PowerShell til \u00e5 utf\u00f8re mange av de samme oppgavene du bruker batchjobber til.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Opptakskilde:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/www.makeuseof.com\" class=\"external external_icon\">www.makeuseof.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Det finnes flere typer IF-setninger du kan bruke i en Windows-batchfil for \u00e5 spare tid og krefter. Sjekk disse eksemplene for \u00e5 finne ut mer.<\/p>\n","protected":false},"author":1,"featured_media":189894,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[2931,2931],"tags":[3060],"class_list":["post-275410","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programmering","tag-affiai-no"],"_links":{"self":[{"href":"https:\/\/howto.mediadoma.com\/no\/wp-json\/wp\/v2\/posts\/275410","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/howto.mediadoma.com\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/howto.mediadoma.com\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/no\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/no\/wp-json\/wp\/v2\/comments?post=275410"}],"version-history":[{"count":1,"href":"https:\/\/howto.mediadoma.com\/no\/wp-json\/wp\/v2\/posts\/275410\/revisions"}],"predecessor-version":[{"id":311652,"href":"https:\/\/howto.mediadoma.com\/no\/wp-json\/wp\/v2\/posts\/275410\/revisions\/311652"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/no\/wp-json\/wp\/v2\/media\/189894"}],"wp:attachment":[{"href":"https:\/\/howto.mediadoma.com\/no\/wp-json\/wp\/v2\/media?parent=275410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/howto.mediadoma.com\/no\/wp-json\/wp\/v2\/categories?post=275410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/howto.mediadoma.com\/no\/wp-json\/wp\/v2\/tags?post=275410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}