Top-Themen

Aktuelle Themen (A bis Z)

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
GELÖST

Inhalte in Dateienin einem Verzeichniss suchen und ersetzen

Frage Entwicklung Batch & Shell

Mitglied: connecthor

connecthor (Level 1) - Jetzt verbinden

02.09.2010, aktualisiert 19:47 Uhr, 2539 Aufrufe, 5 Kommentare

Hallo,

ich habe ein verzeichniss, in dem ca 60 dateien liegen (txt)

nun möchte ich, dass das die dateien nacheinander durchsucht werden und wenn in einer datei der wert gefunden wird, der wert durch einen anderen ersetzt wird und zusätzlich der dateiname (nicht das attribut) als variable zur weitern bearbeitung übernommen wird.

ca so:

wenn der dateiname "test1.txt" ist und der wert "123" darin existiert soll "123" durch "456" ersetzt werden und das "test1" in eine datei augegeben wird.
dann geht das mit der nächsten wahrscheinlich "test2.txt" weiter und "test2"soll auch dann ausgegeben werden in die datei.


bis jetzt habe ich das nur so, dass ich eine datei angebe (name wird eingegeben) und er ändert es dann so:

01.
@echo off & setlocal enabledelayedexpansion 
02.
 
03.
set /p datei="Bitte Datei ohne Endung angeben: " 
04.
set /p PWALT="Bitte altes Passwort eingeben: " 
05.
set /p PWNEU="Neues Passwort bitte: " 
06.
 
07.
set pfad=c:\test 
08.
set aus=c:\test\aus 
09.
set t=C:\temp\temp.tmp 
10.
if exist "%t%" del "%t%" 
11.
 
12.
for /f "usebackq delims=" %%i in ("%pfad%\%datei%.txt") do set "Line=%%i" & set Line=!Line:%PWALT%=%PWNEU%! & echo !Line!>> "%t%" 
13.
move %t% %aus% 
14.
echo %datei% >> c:\test\bearbeitet.rtf 
15.
del /q "%t%"  
16.
 

ihr könnt bestimmt helfen

danke
Mitglied: pieh-ejdsch
02.09.2010 um 22:00 Uhr
Moin connecthor,

temp brauchste eigentlich nicht
wenn im Text Ausrufezeichen enthalten sind ist die VerzögerteVariablenErweiterung nicht vorher Vorteilhaft
wenn Die zu ersetzende Zeichenfolge Ausrufezeichen beinhaltet ist die VerzögerteVariablenErweiterung erst nach der Ersetzung von Vorteil - oder Du Streust ein endlocal ein und die Variable wird danach wieder mit Ausrufezeichen dargestellt, aber man bekommt keine Variablen innerhalb von For-/If- Klammern bzw einer BefehlsZeile Erweitert dargestellt

in etwa so
01.
@echo off 
02.
set /p PWALT="Bitte altes Passwort eingeben: " 
03.
set /p PWNeu=Neues Passwort bitte: " 
04.
set "pfad=c:\test" 
05.
set "aus=c:\test\aus" 
06.
pushD "%pfad%" 
07.
for %%i in (*.txt) do (set "OK=" 
08.
	for /f "usebackq delims=" %%j in ("%%i") do (set "Line=%%j" 
09.
		call set "LineOUT=%%Line:%PWALT%=%PWNEU%%% 
10.
		setlocal enabledalayedexpansion 
11.
		echo !LineOUT! 
12.
		if not "!Line!" == "!LineOUT!" set "OK=1" 
13.
		(for /f %%k in ("!OK!") do endlocal&set "OK=%%k")||endlocal 
14.
15.
	if defined OK echo %%i>> c:\test\bearbeitet.rtf 
16.
)>"%aus%\%%i" 
17.
popD
[Edit] Umleitung in neue Datei verschoben auf Vorletzte Zeile [/Edit]

Gruß Phil
Bitte warten ..
Mitglied: bastla
02.09.2010 um 22:04 Uhr
Hallo connecthor!

Dann wickel eben noch ein Schleifchen herum - ungetestet etwa so:
01.
@echo off & setlocal enabledelayedexpansion 
02.
 
03.
set /p PWALT="Bitte altes Passwort eingeben: " 
04.
set /p PWNEU="Neues Passwort bitte: " 
05.
 
06.
set pfad=c:\test 
07.
set aus=c:\test\aus 
08.
set t=C:\temp\temp.tmp 
09.
if exist "%t%" del "%t%" 
10.
 
11.
for /f "delims=" %%d in ('dir /b "%pfad%\*.txt"') do ( 
12.
    for /f "usebackq delims=" %%i in ("%pfad%\%%d") do set "Line=%%i" & set "Line=!Line:%PWALT%=%PWNEU%!" & echo !Line!>> "%t%" 
13.
    move "%t%" "%aus%\%%d" 
14.
    echo %%~nd >> c:\test\bearbeitet.rtf 
15.
)
BTW: Dass bestimmte Sonderzeichen (<|>^) im Passwort zu unerwünschten Effekten führen können, hast Du ja sicher selbst schon gemerkt ...

[Edit] Funktionsweise "move"-gerecht gemacht [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
02.09.2010 um 22:12 Uhr
moin bastla,

wird nicht beim MOVE die "temp" im "ausVerzeichnis" an die Vorhandene angehängt?

oder war des anders?

Gruß Phil
Bitte warten ..
Mitglied: bastla
02.09.2010 um 22:15 Uhr
@PH
"move" überschreibt - insofern wäre eine Namensvergabe auch kein Fehler (trage ich oben nach) ...

Hast Dir übrigens (besonders im Vergleich zu mir) richtig Mühe gemacht ...

Grüße
bastla
Bitte warten ..
Mitglied: connecthor
03.09.2010 um 17:11 Uhr
Funtz!!! danke!!!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Zeichenfolge in Textdatei durch Inhalt einer Umgebungsvariable ersetzen
gelöst Frage von SarekHLBatch & Shell7 Kommentare

Hallo zusammen, wie kann ich mittels Batch in einer Textdatei die Zeichenfolge durch den Inhalt der Umgebungsvariable %username% ersetzen? ...

Windows Server
Fileserver zeigt unterschiedliche Inhalte eines Verzeichnisses an
Frage von JPSelterWindows Server3 Kommentare

Hallo zusammen, hier wieder mal ein Problem aus der Kategorie "Kuriositäten". Es ist schonmal an einem anderen Rechner bei ...

Linux Tools
Bash: suchen und ersetzen
Frage von SIPSIPLinux Tools14 Kommentare

Hallo zusammen Möchte aus einer riesigen HTML Datei folgenden Strings ersetzen: ^M\ Nun habe ich dieses kleine Script erstellt, ...

Windows Tools
Suche Programm zum dateien suchen und Ersetzen mit Wildcat Suche
gelöst Frage von sfera-haizaWindows Tools5 Kommentare

Grüßt euch, ich nutze zzT. das Programm InfoRapid Suchen & Ersetzen um HTML / PHP Dateien zu durchsuchen bzw. ...

Neue Wissensbeiträge
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 12 StundenMikroTik RouterOS4 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 13 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Information von admtech vor 15 StundenAdministrator.de Feedback9 Kommentare

Hallo Administrator User, mit dem Release 5.7 haben wir unsere Startseite überarbeitet und die Beiträge und Fragen voneinander getrennt. ...

Vmware

VMware Desktopprodukte sind verwundbar

Information von Penny.Cilin vor 20 StundenVmware

Die VMware-Anwendungen zum Umgang mit virtuellen Maschinen Fusion, Horizon Client und Workstation sowie die Plattform NSX sind verwundbar. Davon ...

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Frage von ahstaxVisual Studio24 Kommentare

Hallo, ich möchte gerne ein vb.net-Tool schreiben, das am Ende eine Outlook-E-Mail erzeugt. Grundsätzlich ist mir klar, wie das ...

Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server16 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows Netzwerk
Netzwerk Neustrukturierung
Frage von IT-DreamerWindows Netzwerk16 Kommentare

Hallo verehrte Community und Admins, bei uns im Haus steht eine Neustrukturierung an. Dafür benötige ich von euch ein ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...