Thor. Skrevet 29. april 2007 Skrevet 29. april 2007 Jeg har fikset noen programmer og alle fungerer.. Men jeg skulle gjerne kunne legge alle mine "imtromeldinger" inn i en tekstfil og få batch en til og kun vise linje 1-5 og 6-12 for eksempel. Jeg ønsker ikke å legge alt i et batch for da blir det bare rot. Lar det seg gjøre?
geir__hk Skrevet 2. mai 2007 Skrevet 2. mai 2007 Ikke bat-vil, men vbs-fil. Det er noe vanskeligere å lære seg en bat, men er mye mer effektivt og kan glatt lese av kun gitte linjer i en tekstfil. Men som sagt, har du ikke vært borti programmering før, så må du lære deg det helt grunnleggende først.
Thor. Skrevet 2. mai 2007 Forfatter Skrevet 2. mai 2007 Går det da an og få en vbs til og lese av en del av tekst-filen og printe det i cmd?
j000rn Skrevet 2. mai 2007 Skrevet 2. mai 2007 (endret) Går det da an og få en vbs til og lese av en del av tekst-filen og printe det i cmd? 8520512[/snapback] Ja. cscript MinVBS.vbs MinTekstFil 2 4 MinVBS.vbs: set fso = CreateObject("Scripting.FileSystemObject") set file = fso.OpenTextFile( wscript.arguments(0) ) counter = 1 While file.AtEndOfStream = false s = file.ReadLine() if counter >= cInt(wscript.arguments(1)) then WScript.Echo s end if if counter > cInt(wscript.arguments(2)) then file.close wscript.quit end if counter = counter + 1 Wend file.Close set fso = nothing Endret 2. mai 2007 av jorn79
Thor. Skrevet 8. mai 2007 Forfatter Skrevet 8. mai 2007 Går det an og gjøre det samme bare at man erstatter linje xx?
geir__hk Skrevet 9. mai 2007 Skrevet 9. mai 2007 Går det an og gjøre det samme bare at man erstatter linje xx? 8562383[/snapback] Da er man tilbake til vbs-filer igjen. Det er ikke helt lettvindt heller da, men fullt mulig. Har gjort det selv.
j000rn Skrevet 9. mai 2007 Skrevet 9. mai 2007 (endret) Går det an og gjøre det samme bare at man erstatter linje xx? 8562383[/snapback] Håper dette virker... har ikke testet... cscript MinVBSReplace.vbs MinTekstFil 6 Linje 6 erstattes med dette MinVBSReplace.vbs: set fso = CreateObject("Scripting.FileSystemObject") set file = fso.OpenTextFile( wscript.arguments(0) ) LineNumber = wscript.arguments(1) LineReplace = "" For i = 2 to ubound(wscript.arguments) LineReplace = LineReplace & WScript.Arguments(i) & " " next counter = 1 While file.AtEndOfStream = false s = file.ReadLine() if counter <> LineNumber then WScript.Echo s Else WScript.Echo LineReplace end if counter = counter + 1 Wend file.Close set fso = nothing Endret 9. mai 2007 av jorn79
Thor. Skrevet 9. mai 2007 Forfatter Skrevet 9. mai 2007 Den var det noe feil med.. C:\Documents and Settings\**\Skrivebord\Replace.vbs(5, 1) Microsoft VBScript-k jøretidsfeil: Feil antall argumenter eller ugyldig tilordning av egenskap
kjetil7 Skrevet 10. mai 2007 Skrevet 10. mai 2007 Det er mulig med bat-script også. Start cmd.exe med /V:ON switchen for å aktivere delayed environment expansion: cmd /V:ON Kjør følgende script på en en text.txt fil med ca 10 linjer: set maxLines=4 for /f "delims= skip=3" %%i in (text.txt) do ( if !maxLines!==0 ( rem ) else ( set /A maxLines-=1 echo %%i ) ) Linje 4-8 vil da skrives ut. Pent er det kanskje ikke, men det er mulig. Og kanskje noen har en bedre og enklere løsning?
aadnk Skrevet 10. mai 2007 Skrevet 10. mai 2007 Går det an og gjøre det samme bare at man erstatter linje xx? 8562383[/snapback] Prøv denne: 'On Error Resume NextConst ForReading = 1, ForWriting = 2 If WScript.Arguments.Count < 2 Then ThrowError "The syntax of the command is incorrect." End If ' Hent argumenter FilePath = Wscript.Arguments(0) iLine = Fix(WScript.Arguments(1)) If WScript.Arguments.Count >= 3 Then _ Text = WScript.Arguments(2) Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.OpenTextFile(FilePath, ForReading) If File Is Nothing Then _ ThrowError "File not found." ' Hent alle linjer aLines = Split(File.ReadAll, vbNewLine) ' Lukk fil File.Close ' Utfør endring If iLine >= LBound(aLines) And iLine <= UBound(aLines) Then aLines(iLine) = Text Else ThrowError "Index is out of bounds." End If ' Oppdater endring FSO.DeleteFile FilePath Set File = FSO.CreateTextFile(FilePath, True) File.Write Join(aLines, vbNewLine) ' Rydd opp File.Close Set FSO = Nothing Set File = Nothing Sub ThrowError(Message) WScript.Echo Message WScript.Quit End Sub
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå