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
11 svar · 859 visningar · startad av Calippo
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?
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
Kopiera filen har jag löst med: copy *.txt *.bak
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
Kan inte regexp.... kan du skriva hur man gör det?
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
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...
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
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.
r = inputbox("Ange filnamnet på textfilen du vill byta ut tecken på!", "Filnamn?", "")
fso.copyfile r, r & ".bak", true
Fungerar men ändå omständigt...
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