---
title: "BAT fil som byter ut tecken i textfil"
type: "forum-thread"
url: "https://www.webforum.nu/amne/windows/151289-bat-fil-som-byter-ut-tecken-i-textfil"
topic: "Windows"
topic_url: "https://www.webforum.nu/amne/windows"
author: "Calippo"
published: "2006-09-14T07:35:20.000Z"
updated: "2006-09-14T12:56:29.000Z"
replies: 11
views: 880
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/windows/151289-bat-fil-som-byter-ut-tecken-i-textfil"
---

# BAT fil som byter ut tecken i textfil

## #1 — Calippo, 2006-09-14T07:35Z

Kan man göra en bat fil som kopierar en \*.txt och döper om den till \*.bak och sedan byter ut alla åäö till a och o i \*.txt filen?

Hur i såfall?

Permalänk: https://www.webforum.nu/p/151289

## #2 — aron, 2006-09-14T07:38Z

Hur man gör det med en bat-fil vet jag inte, men det är inte alls svårt med en hex-editor, ofta kan man även skriva script som gör att man inte behöver göra så mycket.

Se t.ex.: <http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm>

Permalänk: https://www.webforum.nu/p/1867283

## #3 — Calippo, 2006-09-14T07:38Z

Kopiera filen har jag löst med: copy \*.txt \*.bak

Permalänk: https://www.webforum.nu/p/1867285

## #4 — OveRRidE, 2006-09-14T08:59Z

Om det nu inte *måste* vara en .bat-fil.

dostuff.vbs:

```
set fso = createobject("scripting.filesystemobject")
fso.copyfile "c:\file.txt", "c:\file.bak", true

set stream = fso.opentextfile("c:\file.txt", 2)
data = stream.readall()
   'gör din replace här, lämpligen med regexp
stream.write data
set stream = nothing

set fso = nothing
```

Permalänk: https://www.webforum.nu/p/1867317

## #5 — Calippo, 2006-09-14T09:33Z

Kan inte regexp.... kan du skriva hur man gör det?

Permalänk: https://www.webforum.nu/p/1867324

## #6 — OveRRidE, 2006-09-14T10:41Z

> **Calippo skrev:**
>
> Kan inte regexp.... kan du skriva hur man gör det?

Problemet är att jag suger kapitalt på Regular expressions själv, men vi gör ett försök; 

```
set fso = createobject("scripting.filesystemobject")
fso.copyfile "c:\file.txt", "c:\file.bak", true

set stream = fso.opentextfile("c:\file.txt", 2)
data = stream.readall()

set regex = new RegExp
regex.global = true
regex.ignorecase = false

regex.pattern = "[ÅÄ]"
data = regex.replace(data, "A")
regex.pattern = "[Ö]"
data = regex.replace(data, "O")
regex.pattern = "[åä]"
data = regex.replace(data, "a")
regex.pattern = "[ö]"
data = regex.replace(data, "o")

set regex = nothing

stream.write data
set stream = nothing

set fso = nothing
```

Permalänk: https://www.webforum.nu/p/1867343

## #7 — Calippo, 2006-09-14T10:55Z

Får felmeddelandet:

Rad: 5
Tecken: 1
Fel: Felaktigt filåtkomstläge

Permalänk: https://www.webforum.nu/p/1867347

## #8 — Calippo, 2006-09-14T11:46Z

Hur ska man göra för att man ska slippa skriva "c:\\file.txt"?

Jag vill att den tar första och bästa txt fil i samma mapp som vbs filen ligger i bara...

Permalänk: https://www.webforum.nu/p/1867364

## #9 — OveRRidE, 2006-09-14T12:29Z

Jag förutsatte att man kunde läsa från filen i write-mode, men tji fick jag. Vi gör såhär istället, det ska fungera.

Angående sökvägen, så är det bara att skriva filnamnet, och ingen fysisk sökväg, så ordnar den det själv.  

```
set fso = createobject("scripting.filesystemobject")
fso.copyfile "file.txt", "file.bak", true

set stream = fso.opentextfile("file.txt", 1)
data = stream.readall()
set stream = Nothing

set regex = new RegExp
regex.global = true
regex.ignorecase = false

regex.pattern = "[ÅÄ]"
data = regex.replace(data, "A")
regex.pattern = "[Ö]"
data = regex.replace(data, "O")
regex.pattern = "[åä]"
data = regex.replace(data, "a")
regex.pattern = "[ö]"
data = regex.replace(data, "o")

set regex = nothing

set stream = fso.opentextfile("file.txt", 2)
stream.write data
set stream = nothing

set fso = nothing
```

Permalänk: https://www.webforum.nu/p/1867379

## #10 — Calippo, 2006-09-14T12:49Z

Fungerade bra, fast jag vill ändå att den letar rätt på txt filen i samma mapp själv eftersom de kan hete olika från gång till gång.

Permalänk: https://www.webforum.nu/p/1867384

## #11 — Calippo, 2006-09-14T12:51Z

r = inputbox("Ange filnamnet på textfilen du vill byta ut tecken på!", "Filnamn?", "")
fso.copyfile r, r & ".bak", true

Fungerar men ändå omständigt...

Permalänk: https://www.webforum.nu/p/1867386

## #12 — Calippo, 2006-09-14T12:56Z

Så här ser koden ut nu:

```
dim fil, s, r, s1, s2, snew, r1
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

r = inputbox("Ange filnamnet på textfilen du vill byta ut tecken på!", "Textmodifieraren", "")

If fso.GetExtensionName(r)="txt" Then
	If (fso.FileExists(r))=False Then
		msgbox("Filen kunde inte hittas!")
		wscript.Quit
	End If

	r1 = msgbox("Alla å, ä och ö kommer att ersättas med a och o! Vill du fortsätta?", 36, "Vill du fortsätta?")
		if r1 = 6 then
			'''''''''''''''''''''''''''''''''''''''''''''''''''

			fso.copyfile r, r & ".bak", true
	
			set stream = fso.opentextfile(r, 1)
			data = stream.readall()
			set stream = Nothing

			set regex = new RegExp
			regex.global = true
			regex.ignorecase = false

			regex.pattern = "[ÅÄ]"
			data = regex.replace(data, "A")
			regex.pattern = "[Ö]"
			data = regex.replace(data, "O")
			regex.pattern = "[åä]"
			data = regex.replace(data, "a")
			regex.pattern = "[ö]"
			data = regex.replace(data, "o")

			set regex = nothing

			set stream = fso.opentextfile(r, 2)
			stream.write data
			set stream = nothing
		Else
			wscript.Quit
		End If
Else
	msgbox("Endast txt filer kan modifieras!")
	wscript.Quit
End If
'''''''''''''''''''''''''''''''''''''''''''''''''''
msgbox "Klart!", 0
```

Permalänk: https://www.webforum.nu/p/1867387

---

Tråden på webben: https://www.webforum.nu/amne/windows/151289-bat-fil-som-byter-ut-tecken-i-textfil
