{"id":275067,"date":"2023-10-23T16:55:00","date_gmt":"2023-10-23T13:55:00","guid":{"rendered":"https:\/\/howto.mediadoma.com\/?p=275067"},"modified":"2025-03-14T15:11:09","modified_gmt":"2025-03-14T12:11:09","slug":"5-if-uttalanden-att-anvanda-for-smartare-windows-batch-skript","status":"publish","type":"post","link":"https:\/\/howto.mediadoma.com\/sv\/5-if-uttalanden-att-anvanda-for-smartare-windows-batch-skript\/","title":{"rendered":"5 IF-uttalanden att anv\u00e4nda f\u00f6r smartare Windows Batch-skript"},"content":{"rendered":"\n<p>Om du g\u00f6r mycket arbete i Windows batchfiler, erbjuder IF-satsen ett mycket kraftfullt s\u00e4tt att l\u00e4gga till flexibilitet till dina skript.<\/p>\n<p>I den h\u00e4r artikeln kommer du att l\u00e4ra dig om fem huvudtyper av IF-satser du kan anv\u00e4nda i en Windows-batchfil, hur den korrekta syntaxen ser ut och ett realistiskt exempel f\u00f6r var och en.<\/p>\n<p>Om du \u00e4r redo att b\u00f6rja skripta, l\u00e5t oss komma ig\u00e5ng.<\/p>\n<h2>1 J\u00e4mf\u00f6r v\u00e4rden<\/h2>\n<p>En av de grundl\u00e4ggande sakerna du vanligtvis beh\u00f6ver g\u00f6ra i ett batchskript \u00e4r att j\u00e4mf\u00f6ra tv\u00e5 v\u00e4rden och f\u00f6lja en annan handling beroende p\u00e5 j\u00e4mf\u00f6relsen.<\/p>\n<p>L\u00e5t oss till exempel s\u00e4ga att du vill skriva ett batchskript som kontrollerar din dators h\u00e5rddiskstorlek dagligen. Om det \u00e4r under 3 GB vill du f\u00e5 en e-postrapport som s\u00e4ger &quot;H\u00e5rddiskutrymme f\u00f6r litet.&quot;<\/p>\n<p>F\u00f6r att skapa ett skript som j\u00e4mf\u00f6r det nuvarande lediga h\u00e5rddiskutrymmet med din gr\u00e4ns, m\u00e5ste du skapa f\u00f6ljande batchskript och spara 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 \u00e4r <strong>WMIC<\/strong> Windows Management Instrumentation-komponenten (WMI) i Windows som kommer med ett urval av kommandon som du kan anv\u00e4nda f\u00f6r att h\u00e4mta information fr\u00e5n din PC.<\/p>\n<p>S\u00e5 h\u00e4r anropar kommandot &quot;wmic&quot; i det h\u00e4r skriptet <strong>logicaldisk<\/strong> space och placerar det i <strong>FreeSpace-<\/strong> variabeln.<\/p>\n<p>Nu kan du bara ers\u00e4tta raden <strong>Echo Inte tillr\u00e4ckligt med ledigt utrymme<\/strong> med ett kommando f\u00f6r att skicka en varning via e-post. St\u00e4ll in skriptet s\u00e5 att det k\u00f6rs dagligen.<\/p>\n<h2>2 Str\u00e4ngj\u00e4mf\u00f6relser<\/h2>\n<p>En annan v\u00e4rdefull IF-j\u00e4mf\u00f6relse du kan g\u00f6ra i ett batchjobb \u00e4r att j\u00e4mf\u00f6ra str\u00e4ngar.<\/p>\n<p>I f\u00f6ljande exempel ser du hur du kontrollerar din Windows-version med ett batchjobb. Sedan kan du j\u00e4mf\u00f6ra detta med din f\u00f6rv\u00e4ntade Windows-version.<\/p>\n<p>Vissa anv\u00e4ndningsomr\u00e5den f\u00f6r detta skript skulle vara f\u00f6r IT-revisioner n\u00e4r du snabbt beh\u00f6ver k\u00f6ra ett skript och se till att det nuvarande operativsystemet \u00e4r det senaste eller om det beh\u00f6ver en uppgradering.<\/p>\n<p>S\u00e5 h\u00e4r ser det h\u00e4r 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>S\u00e5 h\u00e4r ser utmatningen av det h\u00e4r 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-uttalanden att anv\u00e4nda f\u00f6r smartare Windows Batch-skript\" ><\/a><\/p>\n<p>M\u00f6jligheten att j\u00e4mf\u00f6ra str\u00e4ngar i en batch \u00f6ppnar upp en hel lista med m\u00f6jligheter. Om du utforskar all <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/aa394531(v=vs.85).aspx\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">information du kan f\u00e5 fr\u00e5n ett WMIC-kommando<\/a>, ser du hur mycket statistik om din dator du kan \u00f6vervaka.<\/p>\n<p>Dessutom kan du till och med anv\u00e4nda schemalagda batchjobb f\u00f6r att f\u00e5 varningar om dessa.<\/p>\n<h2>3 Kontrollera om en fil finns<\/h2>\n<p>En annan anv\u00e4ndbar situation d\u00e4r en IF-sats i en batchfil \u00e4r att kontrollera om det finns en datafil.<\/p>\n<p>M\u00e5nga g\u00e5nger \u00e4r batchjobbet bara ett \u00f6vervakningsverktyg som du kan schemal\u00e4gga f\u00f6r att leta efter nya inkommande datafiler i en specifik katalog. Sedan kan du antingen kopiera den filen till en annan plats eller starta n\u00e5got Windows-skript som bearbetar filen till en Excel-utdata.<\/p>\n<p>Att anv\u00e4nda en batchfil f\u00f6r att kontrollera om en fil finns i en katalog \u00e4r snabbt och enkelt. S\u00e5 h\u00e4r 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>J\u00e4mf\u00f6relsen OM FINNS \u00e4r anv\u00e4ndbar f\u00f6r m\u00e5nga saker.<\/p>\n<p>Om du till exempel har ett system eller program ig\u00e5ng som skapar nya felloggar i en specifik mapp n\u00e4r det finns ett problem, kan du k\u00f6ra ett batchjobb d\u00e5 och d\u00e5. P\u00e5 s\u00e5 s\u00e4tt kan du enkelt \u00f6vervaka om nya felloggar skapas s\u00e5 att du kan skicka en varning.<\/p>\n<h2>4 Kontrollera om ett kommando misslyckades<\/h2>\n<p>En aspekt av batchfilskript som alltf\u00f6r f\u00e5 IT-folk eller programmerare anv\u00e4nder \u00e4r att leta efter fel.<\/p>\n<p>Det finns m\u00e5nga batchjobb som flyter runt d\u00e4r ute som utf\u00f6r kritiska IT-uppgifter som att s\u00e4kerhetskopiera viktiga filer eller k\u00f6ra filkopieringsoperationer. N\u00e4r dessa batchjobb misslyckas, misslyckas systemen, och folk brukar l\u00e4gga m\u00e4rke till det.<\/p>\n<p>Det \u00e4r mycket smartare att f\u00e5 en varning n\u00e4r ditt batchjobb har misslyckats med ett kommando innan folk b\u00f6rjar m\u00e4rka det. P\u00e5 s\u00e5 s\u00e4tt kan du \u00e5tg\u00e4rda problemet proaktivt.<\/p>\n<p>Du kan g\u00f6ra detta genom att anv\u00e4nda variabeln %errorlevel% som de flesta applikationer och kommandon returnerar efter att de har k\u00f6rts. Allt du beh\u00f6ver g\u00f6ra \u00e4r att f\u00f6lja ditt kommando med kommandot <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>Om programmet eller kommandot returnerar en nolla \u00e4r allt bra. Om inte, m\u00e5ste du skicka ett e-postmeddelande till dig sj\u00e4lv.<\/p>\n<p>Du beh\u00f6ver dock inte ta e-postv\u00e4gen. Du kan alltid skriva en fellogg som du kan kontrollera varje morgon, eller starta ett andra program eller kommando som f\u00f6rs\u00f6ker kopiera med ett alternativt kommando.<\/p>\n<p>Om du dessutom hellre vill anv\u00e4nda en IF-sats f\u00f6r att leta efter specifika felkoder, erbjuder Windows en ganska <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\">omfattande lista med systemfelkoder<\/a>.<\/p>\n<h2>5 Kontrollera om det saknas parametrar<\/h2>\n<p>Den sista anv\u00e4ndbara IF-satsen \u00e4r inte f\u00f6r ett specifikt kommando utan ist\u00e4llet f\u00f6r att kontrollera att skriptet fick r\u00e4tt indataparametrar.<\/p>\n<p>L\u00e5t oss till exempel s\u00e4ga att du har skrivit ett skript som utf\u00f6r ett xcopy-kommando fr\u00e5n en inmatningsmapp till en gemensam n\u00e4tverksmapp som anv\u00e4nds av ett team. Anv\u00e4ndaren beh\u00f6ver bara f\u00f6lja ditt skriptnamn med parametrarna som definierar deras personliga fils\u00f6kv\u00e4g.<\/p>\n<p>Du kan inte k\u00f6ra ditt skript korrekt utan den angivna s\u00f6kv\u00e4gen, s\u00e5 du kanske vill s\u00e4tta en IF-sats i b\u00f6rjan av ditt skript f\u00f6r att se till att b\u00e5da parametrarna \u00e4r angivna.<\/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>Om du aldrig har anv\u00e4nt parametrar med batchskript tidigare, representerar procentsymbolen f\u00f6ljt av en siffra parametervariabeln. <strong>%1<\/strong> \u00e4r den f\u00f6rsta parametern, %2 \u00e4r den andra och s\u00e5 vidare.<\/p>\n<p>I allm\u00e4nhet \u00e4r IF-satser f\u00f6r praktiska och du beh\u00f6ver inte skriva f\u00f6r m\u00e5nga koder f\u00f6r att faktiskt anv\u00e4nda dem. Naturligtvis, om du vill \u00f6ka det ett sn\u00e4pp, kan du \u00f6verv\u00e4ga att ta en titt p\u00e5 VBA med v\u00e5r guide f\u00f6r <a href=\"https:\/\/www.makeuseof.com\/tag\/simple-app-vba\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">att skapa din f\u00f6rsta VBA-applikation<\/a>.<\/p>\n<h2>Batchjobb kan vara kraftfulla<\/h2>\n<p>M\u00e5nga b\u00f6rjade anv\u00e4nda batch-jobb f\u00f6r enkla uppgifter som m\u00e5ste utf\u00f6ras sekventiellt. Tack och lov, med IF-uttalanden, \u00e4r det m\u00f6jligt att l\u00e4gga till mycket mer logik till dina skript.<\/p>\n<p>Dessutom kan du ofta anv\u00e4nda mer avancerade programmeringsspr\u00e5k och anv\u00e4nda PowerShell f\u00f6r att utf\u00f6ra m\u00e5nga av samma uppgifter som du f\u00f6r n\u00e4rvarande anv\u00e4nder batchjobb f\u00f6r.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <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 finns flera typer av IF-satser som du kan anv\u00e4nda i en Windows-batchfil f\u00f6r att spara tid och anstr\u00e4ngning. Kolla dessa exempel f\u00f6r att f\u00e5 veta 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],"tags":[3063],"class_list":["post-275067","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programmering","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/howto.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/275067","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/howto.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/howto.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=275067"}],"version-history":[{"count":1,"href":"https:\/\/howto.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/275067\/revisions"}],"predecessor-version":[{"id":309734,"href":"https:\/\/howto.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/275067\/revisions\/309734"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/189894"}],"wp:attachment":[{"href":"https:\/\/howto.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=275067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/howto.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=275067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/howto.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=275067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}