m-ziemann
Goto Top

Leerzeilen aus .txt entfernen

Hallo,

ich habe ein Problem mit dem Befehlt "ipconfig" . Ich will den mit ein paar anderen Infos zusammen in ne .txt bringen und danach für die Unterlagen ausdrucken.
Nur gehen mir die Leerzeilen dabei ziemlich gegen den Strich.

Das Ganze sieht ungefähr so aus.

@echo off
echo. | date | find "Aktuell" >>system.txt
echo. | time | find "Aktuell" >>system.txt
graftabl 1252
(systeminfo & ipconfig /all & reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices")>>system.txt
findstr ^.$ system.txt >system2.txt
start /w notepad /p system2.txt
del system.txt
del system2.txt


Andere Leerzeilen lassen sich problemlos entfernen, nur halt die von der ausgabe von ipconfig nicht .

Kann mir da wer helfen ?

Content-ID: 113316

Url: https://administrator.de/contentid/113316

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

bastla
bastla 06.04.2009 um 16:53:10 Uhr
Goto Top
Hallo m-ziemann und willkommen im Forum!

Eigentlich sollte doch
findstr . system.txt>system2.txt
genügen, um die Leerzeilen los zu werden ...

Grüße
bastla
Biber
Biber 06.04.2009 um 22:11:50 Uhr
Goto Top
Moin m-ziemann,

nur als Variation, nicht als Alternative zu bastlas Lösung...

An Deiner Lösung empfinde ich aus meiner Erfahrung 2 Details Deines Schnipsels langfristig etwas wartungsunfreundlich bzw von unzureichender spielerischer Leichtigkeit:
  • diese Rumeierei mit zwei Temp-Dateien für eine Outputdatei von ~300 Zeilen... und das in Zeiten der knappen Ressourcen..
  • dieser Schlenker über das unsägliche NotePöd, mit dem sich zwar per Parameter /p drucken lässt, aber nur auf den Standarddrucker

Ohne Not-Päd und mit einer Temp-Datei und auf beliebigen Drucker ohne neues Fenster:
@echo off & setlocal
Set "outfile=%temp%\sysinfo.txt"  
set Regkey="HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices"  
:: ggf CHCP xxxx
>%outfile% (
(echo.|date  & echo.|time)|find "Aktuell"  
(systeminfo & ipconfig /all & reg query %regkey%)|findstr .)
)

Print /d:\\SusisServer\LarasLaser %outfile%
:: ggf CHCP retour
del %outfile%

[Okay, da wo jetzt Zeilen eingespart wurden, da könnten statt dessen Kommentarzeilen rein...]

Grüße
Biber
m-ziemann
m-ziemann 07.04.2009 um 07:53:16 Uhr
Goto Top
Morgen und vielen Dank für die Antworten.

"findstr . " funkioniert leider auch nicht.

schreibt mal den Befehl ipconfig in ne .txt und macht auf der Shell ein edit auf das File. Die Steuerzeichen bleiben drine.

Biber: Guter Ansatz mit dem festen Drucker, nur ist es eigentlich gewollt, dass auf dem Standartdrucker ausgegeben wird. Ich bin hier für das Schulamt in allen Schulen meiner Stadt unterwegs an fast 100 Standorten.
Das Script soll dort halt von nem USB-Stick als Momentaufnahme für die Unterlagen ausgeführt werden wenn ich mich an einen PC setze.

Grüße Marcel
bastla
bastla 07.04.2009 um 10:46:34 Uhr
Goto Top
Hallo m-ziemann!

Stimmt - das überzählige CR bleibt in der Datei und wirkt sich leider beim Ausdruck aus ... face-sad

Mit einem zusätzlichen temporären VBScript (verlängert allerdings den Batch um ein Drittel face-wink) sollte sich das aber beheben lassen - als Ergänzung zu Bibers Vorschlag:
@echo off & setlocal
Set "outfile=%temp%\sysinfo.txt"  
set R=%temp%\RemoveDoubleCR.vbs
>%R%  echo D=WScript.Arguments(0):Set f=CreateObject("Scripting.FileSystemObject")  
>>%R% echo T=f.OpenTextFile(D).ReadAll:f.CreateTextFile(D,True).Write Replace(T,vbCr^&vbCr,vbCr)

set Regkey="HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices"  
:: ggf CHCP xxxx
>%outfile% (
(echo.|date  & echo.|time)|find "Aktuell"  
(systeminfo & ipconfig /all & reg query %regkey%)|findstr .)
)
cscript //nologo %R% %outfile%
start /w notepad /p %outfile%
:: ggf CHCP retour
del %outfile% & del %R%
Schön finde ich die Lösung zwar auch nicht, aber funktionieren sollte es so ...

Grüße
bastla
m-ziemann
m-ziemann 07.04.2009 um 12:21:05 Uhr
Goto Top
Danke für diese Lösung, funkioniert 1a face-smile


Kleine Frage hätte ich noch abweichend vom Thema: Kann ich mitgeben in welcher Schriftgröße ausgegeben wird?


Grüße Marcel
bastla
bastla 07.04.2009 um 13:05:00 Uhr
Goto Top
Hallo m-ziemann!
Kann ich mitgeben in welcher Schriftgröße ausgegeben wird?
Etwas Seriöses fällt mir dazu nicht ein, aber Du kannst es (ist auch schon egal face-wink) mit der folgenden "SendKeys"-Bastelei versuchen:
@echo off & setlocal
set "outfile=%temp%\sysinfo.txt"  
set Schriftgr=8

set R=%temp%\RemoveDoubleCR.vbs
>%R%  echo D=WScript.Arguments(0):Set f=CreateObject("Scripting.FileSystemObject")  
>>%R% echo T=f.OpenTextFile(D).ReadAll:f.CreateTextFile(D,True).Write Replace(T,vbCr^&vbCr,vbCr)

set C=%temp%\ControlNotepad.vbs
>%C%  echo Set WshShell=WScript.CreateObject("WScript.Shell")  
>>%C% echo WshShell.Run "notepad "^&WScript.Arguments(0):WScript.Sleep 100  
>>%C% echo WshShell.AppActivate "sysinfo.txt - Editor":WScript.Sleep 100  
>>%C% echo WshShell.SendKeys "^a":WScript.Sleep 500  
>>%C% echo WshShell.SendKeys "%%os{TAB}{TAB}%Schriftgr%{ENTER}":WScript.Sleep 500  
>>%C% echo WshShell.SendKeys "^p%%d":WScript.Sleep 2000  
>>%C% echo WshShell.AppActivate "sysinfo.txt - Editor":WshShell.SendKeys "%%{F4}"  

set Regkey="HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices"  
:: ggf CHCP xxxx
>%outfile% (
(echo.|date  & echo.|time)|find "Aktuell"  
(systeminfo & ipconfig /all & reg query %regkey%)|findstr .)
)
cscript //nologo %R% %outfile%
cscript //nologo %C% %outfile%
:: ggf CHCP retour
del %outfile% & del %R% & del %C%
Die Bedeutung der einzelnen simulierten Tastenbefehle -
WshShell.SendKeys "^a"
markiert zB den gesamten Text (durch Strg-a) - kannst Du hier nachlesen. Um das Prozentzeichen (als Symbol für "Alt") zu erzeugen, musst Du es im Batch verdoppeln (siehe zB Zeile 14).

Für die Pausen (zB WScript.Sleep 100) sind die Zeiten in Millisekunden angegeben und ggf etwas (nach oben) anzupassen ...

Grüße
bastla
m-ziemann
m-ziemann 07.04.2009 um 14:30:36 Uhr
Goto Top
Habe gerade nochmal was geschaut.

Finde folgenden Möglichkeit auch nicht schlecht, da die Lehrer eh nie so nen Notepad aufmachen werden. ( Lieben ja alle ihr Office ) face-smile

REG ADD HKEY_CURRENT_USER\Software\Microsoft\Notepad /v iPointSize /t REG_DWORD /d 86 /f

Grüße Marcel