Jan 27 2013
Upphottad dos-promopt
En sak som jag länge stört mig på vad det gäller dos-prompten i Windows är att den saknar en hel del finesser.
Svårt att jämföra den med Linux då den saknar en massa program men jag bestämde mig för att försöka komma ett steg närmare iaf, och det här hittade jag.
Till och börja med var jag ju vara tvungen att byta ut den gamla hederliga Windows DOS-prompten (cmd). En av de mest irriterade sakerna med den är att det inte går att ändra bredden på fönstret, höjden går dock bra. Några andra saker är klipp och klistra-funktionen samt att det inte går att söka i fönstret vilket är något jag nästan förutsätter när det är ett fönster i en grafisk miljö.
Det program som jag vid en snabb sökning hittade var ett som heter Powercmd och det klarar de funktioner som jag saknar i den vanliga DOS-prompten. Tyvärr är denna inte gratis och är ju ett krav. Tyvärr var Powercmd överlägsen dess gratis-konkurrenter.
Så nu står det mellan att använda sig av en DOS-prompt eller helt enkel ta steget över till att använda Powershell. Powershell är ett inbyggt shell i Windows som har en del fördelar som inte DOS-prompten har, som t.ex att man kan administrera Windows genom den.
I Powershell så finns det ju en massa extra godis som jag tänkte berätta lite mer om.
Några av dessa godsaker som Powershell har är saker som iaf jag har saknat i den vanliga prompten som t.ex awk, sed, grep m.m.
ps
Gör samma sak som ps i Linux, listar vilka processer som körs
cat
Listar innehållet i en fil. Det riktiga namnet är get-content men det finns ett alias som default.
Användning:
cat filnamn
sed
Tyvärr finns det ingen motsvarighet till sed som är lite ”enkel” men det går att åstadkomma genom följande kommando:
cat filnamn.txt | %{$_ -replace "sökord","ersättningsord"}
Sökningen görs genom regular expression så det är inte en ren sträng-sökning.
grep
Grep har ju funnits tidigare också men under namnet findstr. Dock skulle jag nog ändå rekommendera den lite mer krångliga syntaxen:
cat filnamn.txt | where {$_ -match "söksträng"}
Söksträngen här även här regex baserad.
sed
Att söka igenom en fil och byta ut en sträng händer ju lite då och då. Istället för sed i Linux kan man använda:
cat filnamn.txt | % { $_ -replace "StarTrek","StarWars" } > nyfil.txt
Detta söker igenom filnamn.txt efter StarTrek och ersätter det med StarWars och skickar det till nyfil.txt.
Några andra bra kommandon som kan vara bra att ha uppskrivna är hur man döper om ett gäng filer. Låt oss säga att du har 200 bilder som heter .jpeg som du vill döpa om till .jpg, detta kan ta en stund med utforskaren i Windows. Powerhell låter oss göra detta med en rad:
dir *.jpeg | rename-item -newname { $_.name -replace ".jpeg",".jpg" }
Det här var ett litet smakprov på vad man kan göra med Powershell.
Min slutsats är att överge den gamla hederliga DOS-promten i windows och gå över till Powershell. Detta kanske inte kommer som en chock för Windows-admins runt om i välden men även för lekmän kan det nog vara bra att börja använda Powershell istället, den har fler funktioner och när man väl behöver använda dom är steget inte så stort om man använt den och lekt runt ett tag innan.
Om Ola Sandström
Självutnämnd übernörd och chefsredaktör. Jobbat både som sysadmin och produktspeciallist. Älskar prylar och nörderi i alla dess former.


