Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

in TXT Datei einen zusätzlichen Text einfügen !!

Frage Entwicklung Batch & Shell

Mitglied: NT24

NT24 (Level 1) - Jetzt verbinden

17.07.2005, aktualisiert 17.10.2012, 16197 Aufrufe, 26 Kommentare

Grüß Gott
wie kann ich in einen *.txt Datei in einer Speziellen Zeile einen Text einfügen ??? mit hilfe von MS-DOS Befehlen

oder funktioniert das gar nicht ???

ich bedanke mich im voraus für allen Beiträge

Mit freundlichen Grüßen
NT24
Mitglied: gemini
17.07.2005 um 22:02 Uhr
Ich kann dir einen Weg mit VBS zeigen.

Das Script öffnet die Datei "X:\Pfad\zur\datei.ext" und durchsucht sie Zeile für Zeile nach der Zeichenfolge "Gesuchte Zeichenfolge" am Zeilenanfang.
Jede gelesene Zeile wird in die Variable strLine geschrieben.
Ist "Gesuchte Zeichenfolge" gefunden wird "Text der eingefügt werden soll" angehängt und alle Zeilen bis zum Ende weiter durchlaufen.

Zum Schluß wird "X:\Pfad\zur\datei.ext" zum schreiben geöffnet und der Inhalt von strText, also der komplette, geänderte Dateiinhalt zurückgeschrieben.

Ich hab sowas für einen ähnlichen Zweck im Einsatz und es funktioniert einwandfrei.

Wenn immer die gleiche Zeile (Zeilennummer) umgeschrieben werden soll oder der Suchwert nicht am Zeilenanfag steht kann man das entspr. anpassen


Option Explicit

Dim objFSO, objWshNetwork, objFile
Dim strWorkDir, strText, strText2, strLine, strPathFind
Const ForReading = 1, ForWriting = 2, ForAppending = 8

strWorkDir = "X:\Pfad\zur\datei.ext"
strText = ""
strPathFind = LCase("Gesuchte Zeichenfolge")
strText2 = "Text der eingefügt werden soll"

Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(strWorkDir) Then
Set objFile = objFSO.OpenTextFile(strWorkDir, ForReading)
  Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine
      If Left(LCase(strLine), Len(strPathFind)) = strPathFind Then
       strLine = strPathFind & strText2
      End If
       strText = strText & strLine & vbCrLf
  Loop
objFile.Close
Else
  MsgBox "Die Datei " & strWorkDir & " wurde nicht gefunden."
End If

Set objFile = objFSO.OpenTextFile(strWorkDir, ForWriting)
objFile.Write strText
objFile.Close
Bitte warten ..
Mitglied: traced82
18.07.2005 um 07:45 Uhr
Warum so umständlich?
Wenn Du nur eine Zeile z.B. am Ende anfügen magst:
[Start-Ausführen-CMD] bzw. in ner Batch-Datei

echo text>>dateiname.txt

Mit freundlichen Grüßen
Basti
Bitte warten ..
Mitglied: Biber
18.07.2005 um 09:47 Uhr
Moin NT24,

ich halte auch geminis Ansatz für den flexibelsten und wartbarsten.
Solltest Du aus firmenpolitischen Gründen kein *.vbs einsetzen können/dürfen, dann geht das natürlich auch alles über "reine" DOS-Befehle. Aber dann wäre es hilfreich, Du postest mal etwas genauer die Gegebenheiten.. also ob Du immer die Zeile 8 ersetzen musst oder variabel eine Zeile, die vorher einen bestimmten String enthält oder nach einer bestimmten Zeile eine neue einfügen..
Dann bekommst Du auch eine passende Lösung.

Frank / der Biber aus Bremen
Bitte warten ..
Mitglied: NT24
24.07.2005 um 23:39 Uhr
Kannst du mir so eine VB Datei schicken ??? bitte

Mit freundlichen Grüßen
NT24
NT24@gmx.net
Bitte warten ..
Mitglied: Biber
24.07.2005 um 23:53 Uhr
Moin NT24,
einfach geminis Skript (alles innerhalb der "" ) markieren, kopieren und als Datei InsertLine.vbs (oder einen anderen Namen, aber mit Endung *.vbs) abspeichern.

Von der Dos-Ebene dann einfach starten mit InsertLine Parameter. Das wars.

Frank / der Biber aus Bremen
[edit] Montag früh
Sorry, gemini, hast recht - waren keine Parameter vorgesehen, hatte zu flüchtig gelesen.
[/edit]
Bitte warten ..
Mitglied: gemini
25.07.2005 um 06:35 Uhr
Folgende Zielen müssen angepasst werden:
strWorkDir = "X:\Pfad\zur\datei.ext"
strPathFind = LCase("Gesuchte Zeichenfolge")
strText2 = "Text der eingefügt werden soll"

... und Sorry, aber für Parameterübergabe ist es bis jetzt nicht vorgesehen.

Wenn Argumente verwendet werden sollen, muss folgendes eingefügt werden:
Zeile 2: Dim objArgs
Zeile 6: Set objArgs = WScript.Arguments

Wenn der einzufügende Text als Argument übergeben werden soll:
Zeile10: strText2 = objArgs(0)
Scriptaufruf nun InsertLine.vbs Einfügetext
Mehrere Argumente können durch Leerzeichen getrennt übergeben werden und mit objArgs(1), objArgs(2) usw. ausgewertet werden.

Leider hast du noch nicht gesagt, ob es sich um einen bestimmten, festgelegten Text handelt, der eingefügt werden soll oder ob dieser variabel ist und wie die Einfügestelle gefunden werden kann (Suchtext, Zeilennummer?).
Je genauer Deine Angaben sind, desto besser passt die Lösung.

Schönen Tag!
Bitte warten ..
Mitglied: NT24
25.07.2005 um 20:41 Uhr
Ich bedanke mich erst mals bei dir bei deir hilfe stellung zu deiner Frage es sollte in einem TextFeld ein Text eingegeben werden und dieser in einer Text Datei gespeichert werden!

Mit freundlichen Grüßen
NT24
Bitte warten ..
Mitglied: gemini
25.07.2005 um 21:54 Uhr
Hallo NT24!

Also nochmal, der User startet das Script, es erscheint eine Meldung mit Textbox, die zur Eingabe eines Textes auffordert. Nachdem der User einen Text eingegeben hat wird dieser an einer bestimmten Stelle einer bestimmten, immer gleich lautenden Datei gespeichert.

Bei Usereingaben stellt sich natürlich auch immer die Frage, ist dieser Mensch in der Lage, die Textbox mit dem richtigen Inhalt zu füllen. Sonst muss auch noch eine Fehlerbehandlung eingebaut werden.

Jetzt weiß ich immer noch nicht wie diese bestimmte Stelle in der Textdatei gefunden werden kann. Das wär schon irgendwie wichtig. Ist es immer eine bestimmte Zeilennummer oder steht in der betreffenden Zeile ein bestimmtes Wort nach dem man suchen kann.

Wen du mir die Fragen beantworten würdest kämen wir evtl. schneller zu einem befriedigenderen Ergebnis.

~~~~~~~~~~

Für die User-Eingabebox ersetze diese Zeile
strText2 = "Text der eingefügt werden soll"
mit dieser Zeile
strText2 = Inputbox("Welcher Text soll eingefügt werden?", "InsertLine")
Bitte warten ..
Mitglied: MM69
13.10.2005 um 14:11 Uhr
DIR /A /D /B "C:\Dokumente und Einstellungen" > "D:\MM_ETF_Test\Benutzer.txt"
FOR /f "tokens=*" %%f IN (Benutzer.txt) DO echo C:\Dokumente und Einstellungen\%%f\Recent\ >>1benutzer.txt
FOR /f "tokens=*" %%f IN (Benutzer.txt) DO echo C:\Dokumente und Einstellungen\%%f\Cookies\ >>1benutzer.txt
FOR /f "tokens=*" %%f IN (Benutzer.txt) DO echo C:\Dokumente und Einstellungen\%%f\Lokale Einstellungen\Verlauf\ >>1benutzer.txt
FOR /f "tokens=*" %%f IN (Benutzer.txt) DO echo C:\Dokumente und Einstellungen\%%f\Lokale Einstellungen\Temporary Internet Files\ >>1benutzer.txt
FOR /f "tokens=*" %%f IN (Benutzer.txt) DO echo C:\Dokumente und Einstellungen\%%f\Lokale Einstellungen\Temp\ >>1benutzer.txt
FOR /f "tokens=*" %%f IN (Benutzer.txt) DO echo C:\Dokumente und Einstellungen\%%f\Anwendungsdaten\Microsoft\Office\Zuletzt verwendet\ >>1benutzer.txt
FOR /f "tokens=*" %%f IN (Benutzer.txt) DO echo C:\Dokumente und Einstellungen\%%f\Lokale Einstellungen\Anwendungsdaten\Microsoft\CD Burning\ >>1benutzer.txt
FOR /f "tokens=*" %%f IN (Benutzer.txt) DO echo C:\Dokumente und Einstellungen\%%f\InstallShield Installation Information\ >>1benutzer.txt

if /i "C:\WINDOWS" == "C:\WINDOWS" goto xp
if /i "C:\WINNT" == "C:\WINNT" goto winnt
else goto ende

:winnt
echo C:\WINNT\Cookies\ >> 1benutzer.txt
echo C:\WINNT\Temp\ >> 1benutzer.txt
echo C:\WINNT\Temporary Internet Files\ >> 1benutzer.txt
echo c:\WINNT\system32\config\systemprofile\recent\ >> 1benutzer.txt

:xp

echo C:\Windows\Cookies\ >> 1benutzer.txt
echo C:\Windows\Prefetch\ >> 1benutzer.txt
echo C:\Windows\Temp\ >> 1benutzer.txt
echo C:\Windows\Temporary Internet Files\ >> 1benutzer.txt
echo c:\windows\system32\config\systemprofile\recent\ >> 1benutzer.txt

:ende


Ergebnis: Benutzer.txt

Administrator
All Users
Default User
LocalService
MM
NetworkService
Service


Ergebnis: Benutzer1.txt

C:\Dokumente und Einstellungen\Administrator\Recent\
C:\Dokumente und Einstellungen\All Users\Recent\
C:\Dokumente und Einstellungen\Default User\Recent\
C:\Dokumente und Einstellungen\LocalService\Recent\
C:\Dokumente und Einstellungen\MM\Recent\
C:\Dokumente und Einstellungen\NetworkService\Recent\
C:\Dokumente und Einstellungen\Service\Recent\
C:\Dokumente und Einstellungen\Administrator\Cookies\
C:\Dokumente und Einstellungen\All Users\Cookies\
C:\Dokumente und Einstellungen\Default User\Cookies\
C:\Dokumente und Einstellungen\LocalService\Cookies\
C:\Dokumente und Einstellungen\MM\Cookies\
C:\Dokumente und Einstellungen\NetworkService\Cookies\
C:\Dokumente und Einstellungen\Service\Cookies\
C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Verlauf\
C:\Dokumente und Einstellungen\All Users\Lokale Einstellungen\Verlauf\
C:\Dokumente und Einstellungen\Default User\Lokale Einstellungen\Verlauf\
C:\Dokumente und Einstellungen\LocalService\Lokale Einstellungen\Verlauf\
C:\Dokumente und Einstellungen\MM\Lokale Einstellungen\Verlauf\
C:\Dokumente und Einstellungen\NetworkService\Lokale Einstellungen\Verlauf\
C:\Dokumente und Einstellungen\Service\Lokale Einstellungen\Verlauf\
C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Temporary Internet Files\
C:\Dokumente und Einstellungen\All Users\Lokale Einstellungen\Temporary Internet Files\
C:\Dokumente und Einstellungen\Default User\Lokale Einstellungen\Temporary Internet Files\
C:\Dokumente und Einstellungen\LocalService\Lokale Einstellungen\Temporary Internet Files\
C:\Dokumente und Einstellungen\MM\Lokale Einstellungen\Temporary Internet Files\
C:\Dokumente und Einstellungen\NetworkService\Lokale Einstellungen\Temporary Internet Files\
C:\Dokumente und Einstellungen\Service\Lokale Einstellungen\Temporary Internet Files\
C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Temp\
C:\Dokumente und Einstellungen\All Users\Lokale Einstellungen\Temp\
C:\Dokumente und Einstellungen\Default User\Lokale Einstellungen\Temp\
C:\Dokumente und Einstellungen\LocalService\Lokale Einstellungen\Temp\
C:\Dokumente und Einstellungen\MM\Lokale Einstellungen\Temp\
C:\Dokumente und Einstellungen\NetworkService\Lokale Einstellungen\Temp\
C:\Dokumente und Einstellungen\Service\Lokale Einstellungen\Temp\
C:\Dokumente und Einstellungen\Administrator\Anwendungsdaten\Microsoft\Office\Zuletzt verwendet\
C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Microsoft\Office\Zuletzt verwendet\
C:\Dokumente und Einstellungen\Default User\Anwendungsdaten\Microsoft\Office\Zuletzt verwendet\
C:\Dokumente und Einstellungen\LocalService\Anwendungsdaten\Microsoft\Office\Zuletzt verwendet\
C:\Dokumente und Einstellungen\MM\Anwendungsdaten\Microsoft\Office\Zuletzt verwendet\
C:\Dokumente und Einstellungen\NetworkService\Anwendungsdaten\Microsoft\Office\Zuletzt verwendet\
C:\Dokumente und Einstellungen\Service\Anwendungsdaten\Microsoft\Office\Zuletzt verwendet\
C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\CD Burning\
C:\Dokumente und Einstellungen\All Users\Lokale Einstellungen\Anwendungsdaten\Microsoft\CD Burning\
C:\Dokumente und Einstellungen\Default User\Lokale Einstellungen\Anwendungsdaten\Microsoft\CD Burning\
C:\Dokumente und Einstellungen\LocalService\Lokale Einstellungen\Anwendungsdaten\Microsoft\CD Burning\
C:\Dokumente und Einstellungen\MM\Lokale Einstellungen\Anwendungsdaten\Microsoft\CD Burning\
C:\Dokumente und Einstellungen\NetworkService\Lokale Einstellungen\Anwendungsdaten\Microsoft\CD Burning\
C:\Dokumente und Einstellungen\Service\Lokale Einstellungen\Anwendungsdaten\Microsoft\CD Burning\
C:\Dokumente und Einstellungen\Administrator\InstallShield Installation Information\
C:\Dokumente und Einstellungen\All Users\InstallShield Installation Information\
C:\Dokumente und Einstellungen\Default User\InstallShield Installation Information\
C:\Dokumente und Einstellungen\LocalService\InstallShield Installation Information\
C:\Dokumente und Einstellungen\MM\InstallShield Installation Information\
C:\Dokumente und Einstellungen\NetworkService\InstallShield Installation Information\
C:\Dokumente und Einstellungen\Service\InstallShield Installation Information\
C:\Windows\Cookies\
C:\Windows\Prefetch\
C:\Windows\Temp\
C:\Windows\Temporary Internet Files\
c:\windows\system32\config\systemprofile\recent\

Danach soll Benutzer2.txt erstellt werden die dann so aussehen soll:

1=C:\Dokumente und Einstellungen\Administrator\Recent\
2=C:\Dokumente und Einstellungen\All Users\Recent\
3=C:\Dokumente und Einstellungen\Default User\Recent\
4=C:\Dokumente und Einstellungen\LocalService\Recent\
5=C:\Dokumente und Einstellungen\MM\Recent\

Alle Zeilen sollen nummeriert werden bis x Zeile.

Dann diese Benutzer2.txt als emptemp2.ini abgespeichert werden: die in Roter Farbe müssen dann angepasst ( eingefügt , geändert werden)


[form2]
left=420
top=326
[form1]
maximized=0
left=317
top=259
width=696
height=482
treeWidth=247
lastOneSelected=12
Splitter1Left=247
CBoxZeroBytes=0
[extlview]
CurrentSortAscending=1
LastColumnClicked=0
[folders]
*number=12 (* muss angepasst werden)
0=Computer
*1=c:\dokume~1\mm\lokale~1\temp\
*2=c:\dokumente und einstellungen\mm\cookies\
*3=c:\dokumente und einstellungen\mm\lokale einstellungen\temp\
*4=c:\dokumente und einstellungen\mm\lokale einstellungen\temporary internet files\
*5=c:\dokumente und einstellungen\mm\lokale einstellungen\verlauf\
*6=c:\dokumente und einstellungen\mm\recent\
*7=c:\dokumente und einstellungen\networkservice\cookies\
*8=c:\dokumente und einstellungen\networkservice\lokale einstellungen\temporary internet files\
*9=c:\dokumente und einstellungen\networkservice\lokale einstellungen\verlauf\
*10=c:\windows\debug\
*11=c:\windows\system32\config\systemprofile\recent\
*12=c:\windows\temp\
[filetypes]
number=22
0=---
1=$$$
2=$db
3=*.gid
4=aps
5=bak
6=bsc
7=chk
8=da0
9=db$
10=dir
11=dmp
12=ilk
13=mscreate
14=mtx
15=ncb
16=old
17=pch
18=rws
19=sbr
20=syd
21=temp
22=tmp
[zerofiletypes]
number=-1
[shorcutExclFolders]
number=-1
[tmpFilesExcludeFolders]
number=-1


Hat jemand da eine Idee wie ich das umgesetzt bekomme?? Leider komme ich nicht weiter. Danke im Voraus für eure Hilfe.
Bitte warten ..
Mitglied: Biber
13.10.2005, aktualisiert 17.10.2012
Moin, mm69,

Dir auch einen Schönen Guten Tag und herzlich willkommen.
Das Erstellen der Benutzer2.txt mit den durchnummerierten Zeilen ließe sich über drei oder vier Zeilen Batch abfackeln mit einer FOR /F -Schleife.
So etwas ähnliches habe ich mal <a href=http://www.administrator.de/wissen/workshop-batch-for-runaways-part-ii- ... target="blank"> hier (numberMe.bat) </a> beschrieben.

Und ebenfalls über eine aufgebohrte FOR /F-Schleife ließe sich auch diese emptemp.ini sicherlich neu erstellen - wenn es denn überhaupt Batch und Textdatei-Verarbeitung sein soll(?).
Weil... sich aus drei Text-Dateien etwas zusammenmischen, ist ja vielleicht nicht die wartbarste Lösung. Sieht mir doch verdächtig nach tabellarischen und hierarchischen Strukturen aus... jedenfalls nach Strukturen, die schon differenzierter sind als "Textdatei mit Unterebene Zeile". Evtl. also eher was mit Tabellen -> irgendein simples Frontend-Tabellen-Tool wie Excel/Access/Open Office zur Daten-Abbildung.

Was ist denn der Hintergrund der Anforderung?

Frank / der Biber aus Bremen

P.S. Die roten Zeilen sind bei mir nur sehr schwach eingefärbt. Könntest Du eine Farbe versuchen bitte?
Bitte warten ..
Mitglied: MM69
13.10.2005 um 14:47 Uhr
Hi,

danke erst mal für deine Antwort. Es soll über eine Batch ablaufen und es ist für ein Plugin für BartPe gedacht. Das Programm heißt Empty Temp Folders v.2.8.3. Durch den Batch wird die Benutzer Pfade ermittelt und eine inii-Datei erstellt damit das Programm funktioniert. Mal sehen ob ich aus deinem Batch schlau werde.
Bitte warten ..
Mitglied: Biber
13.10.2005 um 15:50 Uhr
@MM69
...bestimmt wirst Du schlau draus... ich hab ihn ja auch nach dem dritten Lesen verstanden
Bitte warten ..
Mitglied: MM69
13.10.2005 um 16:39 Uhr
Kriege nicht angepasst und so wie im Beispiel funktioniert bei mir nicht
Bitte warten ..
Mitglied: Biber
14.10.2005 um 23:30 Uhr
@MM69
Versteh ich nicht.
Das Erzeugen der "Benutzer2.txt" ist doch ein Oneliner vom Prompt aus...??
01.
> (set /a cnt=0) & @for /f "delims=" %i in ('type benutzer1.txt') do (@set /a cnt+ 
02.
=1 & echo =%i)>>benutzer2.txt
... oder, meinetwegen etwas lesbarer im Batch
01.
~~~~ Batchschnipsel zum Erzeugen der Benutzer2.txt 
02.
echo off  
03.
..... 
04.
set /a cnt=0 
05.
set be2=.\benutzer2.txt 
06.
if exist %be2% del %be2% 
07.
for /f "delims=" %%i in ('type benutzer1.txt') do call :writeln "%%i" 
08.
goto next 
09.
 
10.
:writeln 
11.
  set /a cnt+=1  
12.
  echo %cnt%=%~1>>%be2% 
13.
goto :eof 
14.
 
15.
 
16.
:next  
17.
:: nur zum Debuggen jetzt anzeigen 
18.
type %be2% 
19.
::... und weiter im Batch 
20.
... 
21.
~~~Ende Batchschnipsel zum Erzeugen der Benutzer2.txt
Output (erzeugte Benutzer2.txt:
01.
1=C:\Dokumente und Einstellungen\Administrator\Recent\  
02.
2=C:\Dokumente und Einstellungen\All Users\Recent\  
03.
3=C:\Dokumente und Einstellungen\Default User\Recent\  
04.
4=C:\Dokumente und Einstellungen\LocalService\Recent\  
05.
5=C:\Dokumente und Einstellungen\MM\Recent\  
06.
.... 
07.
57=C:\Windows\Cookies\  
08.
58=C:\Windows\Prefetch\  
09.
59=C:\Windows\Temp\  
10.
60=C:\Windows\Temporary Internet Files\  
11.
61=c:\windows\system32\config\systemprofile\recent\ 
Wo war das Problem?

Wenn es wieder nicht klappt, melde Dich am Sonntag oder so... morgen mach ich frei...

Biber

P.S. Du schreibst ein überflüssiges Leerzeichen am Ende jeder Zeile beim Erzeugen der "Benutzer1.txt".
Das holt Dich irgendwann später wieder ein... das seh ich jetzt schon
Bitte warten ..
Mitglied: MM69
16.10.2005 um 21:22 Uhr
Hi, danke dir es klappt jetzt.
"Du schreibst ein überflüssiges Leerzeichen am Ende jeder Zeile beim Erzeugen der "Benutzer1.txt".
Das holt Dich irgendwann später wieder ein... das seh ich jetzt schon " wenn ich das wüsste woher das kommt.*sfg
Bin ja noch auf der suche und bei Benutzer2.txt sind ca 3 leerzeichen pro Zeile. Wie kriege ich dir denn weg
Bitte warten ..
Mitglied: Biber
16.10.2005 um 23:45 Uhr
Na, MM69,

tasten wir uns mal langsam weiter.. alles an Deinem Plan versteh ich ja auch noch nicht *gg

Also: den ersten Schritt würde ich geringfügig anders schreiben:
01.
::------------snipp MakeMyInis.bat 
02.
@echo off & setlocal 
03.
:: die erste Zwischendatei... falls nötig.  
04.
:: Machen wir mal aus Gründen der Übersichtlichkeit. 
05.
Set "be1=.\benutzer1.txt" 
06.
if exist %be1% del %be1%  
07.
:: ggf Namen und Pfad der %be1% anpassen 
08.
:: erstmal das Verzeichnis "c:\Dokumente und Einstellungen" finden 
09.
:: --> in Variable myDocFolder... ist eine Ebene über dem User-Home-Verzeichnis 
10.
:: (%HOMEDRIVE%%HOMEPATH% nutzt der Explorer, die sind "immer" gesetzt) 
11.
pushd "%HOMEDRIVE%\%HOMEPATH%\.." 
12.
set "myDocFolder=%cd%" 
13.
popd 
14.
FOR /f "tokens=*" %%f IN ('dir /A /D /B "%mydocFolder"') DO ( 
15.
	  echo %mydocFolder%\%%f\Recent\>>%be1% 
16.
	  echo %mydocFolder%\%%f\Cookies\>>%be1%  
17.
	  echo %mydocFolder%\%%f\Lokale Einstellungen\Verlauf\>>%be1%  
18.
	  echo %mydocFolder%\%%f\Lokale Einstellungen\Temporary Internet Files\>>%be1%  
19.
	  echo %mydocFolder%\%%f\Lokale Einstellungen\Temp\>>%be1% 
20.
	  echo %mydocFolder%\%%f\Anwendungsdaten\Microsoft\Office\Zuletzt verwendet\>>%be1%  
21.
	  echo %mydocFolder%\%%f\Lokale Einstellungen\Anwendungsdaten\Microsoft\CD Burning\>>%be1% 
22.
	  echo %mydocFolder%\%%f\InstallShield Installation Information\>>%be1% 
23.
24.
 
25.
::....Ende Erzeugen erste Zwischendatei (zum Großteil) 
26.
goto :eof 
27.
..... 
28.
::------------snapp MakeMyInis.bat
So finde ich es ein bisschen übersichtlicher.
Wenn das meine Spielwiese wäre, würde ich auch noch die Subfolders "Recent", "Cookies",....
in eine Variable und eine innere FOR-Schleife packen, aber was solls... Nicht wichtig.

Wichtiger: Vor dem ">>" ist KEIN Leerzeichen! (bei Dir war schon eins: " >>").
Und das wurde auch ans Ende der Zeile geschrieben. Laut Anweisung sozusagen *gg.
~~~~~
Nächste Anmerkung:
Dieses hier in deinem Source macht nix sinnvolles, wie Du beim lauten Vorlesen auch selber merkst.
01.
if /i "C:\WINDOWS" == "C:\WINDOWS" goto xp  
02.
if /i "C:\WINNT" == "C:\WINNT" goto winnt  
03.
else goto ende 
Das merkst Du nicht, weil Du unter XP arbeitest (kann nicht anders sein) und er da alles richtig (=ohne sichtbare Fehlermeldung) macht.
Weder die 2. IF-Anweisung noch das "else" kann je erreicht werden.
Und beim "else" gäbe es auch einen Syntax-Fehler (siehe Hilfe: IF /?)
~~~
Aber hier frag ich lieber erstmal nach, was Du da genau versuchst?
Fallunterscheidung NT 4.0 und XP? Oder XP und W2000?... Ist jedenfalls nicht sauber.
Wenn es um die OS-Version geht: Im Bereich <a href= http://www.administrator.de/index.php?mod=ver&kid=1101995812 target="blank"> Batch & Shell</a> ist auch ein GetOSVersion-Tutorial.
~~~
Und wo ich ganz am Schwimmen bin:
Nach welcher Logik/ welchen Kriterien willst Du denn diesen Block [Folders] in deiner *.ini bilden lassen???

Da hab ich offen gestanden nicht begriffen, woher die Infos kommen bzw. was da nun variabel und was konstant ist.

Grüße
Biber
Bitte warten ..
Mitglied: Xaero1982
04.07.2006 um 09:03 Uhr
So,

ich habe 26 *.bat dateien.
Alle haben einen anderen Namen!
An alle soll ein und die selbe Zeile angehangen werden.

Notfalls soll ich diese Zeile auch wieder löschen können.

VBS, Batch was auch immer -> egal

Hat jemand ne Idee ?
.. so das erste geht .. wie kann ich die zeile wieder entfernen?
Bitte warten ..
Mitglied: Biber
04.07.2006 um 09:19 Uhr
Moin Xaero1982,

kommt darauf an, ob Du die 26 *.bat-Dateien über Wildcards einfangen kannst oder namentlich angeben musst.

Über Wildcards:
[Beispiel vom CMD-Prompt aus]
for %i in (c:\meineBats\*.bat) do @echo "REM meine neue Zeile">>c:\meinebats\%i

Über eine Dateiliste der Form Meinebats.lst
;--Inhalt meineBats.lst
c:\temp\meinBat1.bat
d:\xyz\meinBat2.bat
...

for /f %i in (Meinebats.lst) do @echo "REM meine neue Zeile">>%i

~~~~~~~~
Zeile wieder Herauslöschen aus einem/allen der *.bats mit Find /v.

for /f %i "eol=;" in (c:\meineBats\*.bat) do @type c:\meineBats\%i|find /v "REM meineneue Zeile">c:\meinebats\%i

Soweit die ungetestete Skizze.

Gruß
Biber
Bitte warten ..
Mitglied: Xaero1982
04.07.2006 um 09:51 Uhr
Also das erste mit dem eintragen habe ich simpel mit dem anderen Beitrag ausm anderen thread gelöst:

eine Zeile

for %i in (*.bat) do (echo text)>>"%i"

oder nen block

for %i in (*.txt) do copy "%i"+anhang.txt "%i"

So und das mit dem Löschen geht nicht .. "eol=;" syntaktisch an dieser stelle nicht verarbeitbar

find /V ....
01.
find /? 
02.
Sucht in einer oder mehreren Dateien nach einer Zeichenfolge. 
03.
 
04.
FIND [/V] [/C] [/N] [/I] "Zeichenfolge" [[Laufwerk:][Pfad]Dateiname[ ...]] 
05.
 
06.
  /V        Zeigt alle Zeilen an, die die Zeichenfolge NICHT enthalten. 
07.
  /C        Zeigt nur die Anzahl der die Zeichenfolge enthaltenden Zeilen an. 
08.
  /N        Zeigt die Zeilen mit ihren Zeilennummern an. 
09.
  /I        Ignoriert Groß-/Kleinschreibung bei der Suche. 
10.
  "Zeichenfolge"               Die zu suchende Zeichenfolge 
11.
  [Laufwerk:][Pfad]Dateiname   Zu durchsuchende Datei(en) 
12.
 
13.
Fehlt der Pfad, so durchsucht FIND von der Tastatur aus eingegebenen Text oder 
14.
die Ausgabe des Befehls, der FIND in einer Befehlskette vorangestellt ist.
Bitte warten ..
Mitglied: Biber
04.07.2006 um 09:56 Uhr
Jepp, Xaero,
so geht mir das vor der ersten Kanne Kaffee und mit dem Copy & Pasten...
Die untere FOR_Anweisung sollte natürlich eine FOR /F-Anweisung sein und keine einfache FOR-Anweisung...

Hab ich oben in der Skizze korrigiert.

Sorry
Biber
Bitte warten ..
Mitglied: Xaero1982
04.07.2006 um 10:00 Uhr
for /f %i "eol=;" in (*.bat) do @type %i|find /v "REM TEXT">%i

""eol=;"" ist syntaktisch an dieser Stelle nicht verarbeitbar.
Bitte warten ..
Mitglied: Biber
04.07.2006 um 10:12 Uhr
*grmpf*

Nochmal sorry... jetzt hab ich mich auch ganz verwirren lassen...
Wenn der Parameter "eol=;" funktionieren soll, dann muss es zwar eine "FOR /F"-Anweisung sein.

Hier sind aber sowohl "Eol=;" wie auch Parameter /F Bullshit... hier soll ja wirklich nur die Liste der *.bat-Dateien durchgenudelt werden.

Also ganz banal
for %i in (c:\meineBats\*.bat) do ..[whatever]

*jezz abba erzma ein' dreifachen Kaffee hole*
Bitte warten ..
Mitglied: Xaero1982
04.07.2006 um 10:18 Uhr
rofl ... biber nej...

so for %i in (*.bat) do ...kram von oben

ALLE sind LEER!!!!!!

noch was wie kann ich einen zeilenumbruch einfügen?
der fügt den text genau hinten an die letzte zeile an .. und nicht in eine neue

edit: zeilenumbruch hab ich ... mit "^"
Bitte warten ..
Mitglied: Biber
04.07.2006 um 13:06 Uhr
noch was wie kann ich einen zeilenumbruch einfügen?
der fügt den text genau hinten an die letzte zeile an .. und nicht in eine neue
edit: zeilenumbruch hab ich ... mit "^"

..eine andere Möglichkeit wäre ein zusatzliches "echo."

.......do ((echo.) & echo "der eigentliche Text")>inneDatei.bat

*ansonsten still bleibe bis das Koffein wirkt*
Bitte warten ..
Mitglied: Xaero1982
04.07.2006 um 13:33 Uhr
Nuja .. das Problem mit dem Löschen besteht noch immer :D
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Webentwicklung
gelöst HTML Output in eine txt Datei mit VisualBasicScript (2)

Frage von coca22COCA zum Thema Webentwicklung ...

Batch & Shell
Merkwürdige Zeilenformatierung in txt Datei (3)

Frage von miczar zum Thema Batch & Shell ...

Linux Tools
Mit Linux am ende einer Datei eine Leerzeile einfügen (8)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Linux Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...