Gå til innhold

Hvordan skjule visning av linjer som begynner med # i .bat fil?


Anbefalte innlegg

Jeg ønsker å lage en .bat fil for å sjekke innholdet i hosts filen til windows. Dette gjør jeg enkelt ved å bruke "type" Det jeg lurer på er om det er en command jeg kan bruke som skjuler linjene som starter med # ?

 

Nå bruker jeg

 

@echo off
type %windir%\system32\drivers\etc\hosts
pause

 

I hosts filen ligger denne infoen:

 

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#	  xxx.xx.xx.xx	 aaa.eks.com		  # source server
#	   xx.xx.xx.xx	 aaa.eks.com			  # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1	   localhost
# ::1			 localhost
192.168.1.1	  Eksempel

Men jeg ønsker kun å få frem:

192.168.1.1 Eksempel.

Jeg vil kutte ut alle linjer som begynner med #

Endret av RMBB
Lenke til kommentar
Videoannonse
Annonse

Dette er filen jeg kjører:

 

@echo off
type %windir%\system32\drivers\etc\hosts
pause

 

Da får jeg se det jeg trenger, men jeg ønsker å ekskludere alle linjene som begynner med #

Skal bruke dette videre og ønsker ikke å få frem så mye unyttig tekst..

Lenke til kommentar

Ref: http://itpro.no/arti...atch-scripting/

 

Med echo off blir selve kommandoene usynlig, men evt. feilmeldinger eller feedback fra kjørte instrukser ser ut til å bli vist.

 

For en god løsning på sånne ting, og som også lett kan kompileres til exe-filer, kan jeg tipse om f.eks. AutoHotKey. Egen syntax, men ikke spesielt vanskelig å lære, og er freeware. Bruker den selv til litt ymse. Ta en titt.

http://www.autohotkey.com/

Endret av xRun
Lenke til kommentar

findstr /v "^#" "%windir%\system32\drivers\etc\hosts"

Eller loop over innhold og hoppe over liner med #.

@echo off
setLocal EnableDelayedExpansion
for /f "eol=# delims=" %%a in (%windir%\system32\drivers\etc\hosts) do (
set var=%%a
echo !var!
)
pause

Lenke til kommentar

Takk for svar:)

 

xRun: Har ikke forklart meg godt nok, har oppdatert 1. post:) Har vært innom den fra itpro, men tror ikke den er grundig nok. Skal sjekke ut AutoHotKey:)

 

SNIPPSAT: Jeg har sett "for" kommandoen, men finner ingen steder som forklarer den på en måte jeg skjønner. Når jeg kjører din viser den ikke annet enn pause. Får ingen feilmelding når jeg tar vekk @echo off Begge virker fint! Jeg som hadde tom hosts fil :blush:

Hva gjør /f i kommandoen?

Hvorfor må du ha med delims=

Hva gjør %%A?

Er "in" for å fortelle hvor filen du ønsker å "behandle" er?

Endret av RMBB
Lenke til kommentar
Hva gjør /f i kommandoen?

Splitter gitt innhold(tokens) inn i seksjoner.

Hvorfor må du ha med delims=

Viss delimiter settes tom,vil hele linen bli tilordnet variabelen.

Hva gjør %%A?

Innhold i hosts(linje for linje)blir tilordnet variabelen A.

Er "in" for å fortelle hvor filen du ønsker å "behandle" er?

"in" at enn vil jobbe med innhold i hosts.

 

Dette er da noe du kan lese om i de fleste tutorials om Batch.

Jeg bruker Batch lite eller ikke noe,gjør alt i andre språk da jeg ikke liker Batch overhode.

 

Kan ta med hvordan man skriver dette i Python.

with open(path_to_hosts) as file_content :
 for line in file_content:
   if not line.startswith('#'):
   print line

Koden kan nesten forstås selv om man aldri har programmert før.

Endret av SNIPPSAT
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...