• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Batch-datei: brauch Hilfe!

Baster

Neu angemeldet

Registriert
5 Apr. 2015
Beiträge
68
ich bräuchte mal eine batch-datei
ich hoffe, da kann mir jemand von euch helfen, ist von großer wichtigkeit.

also: ein Ordner (Log-files) muss verschoben werden. vorher soll in alle .log files einem String suchen und
die Zeile, die ihn enthält, durch eine andere Zeile ersetzen.
[src=bash] @echo off
SETLOCAL=ENABLEDELAYEDEXPANSION

rename *.log *.tmp
for /f %%a in (log.tmp) do (
set foo=%%a
if !foo!=die-original-Zeil set foo=die-neue-zeile
echo !foo! >> *.log)
del .*tmp[/src]
ich brauch also eine schleife, welche besagt, dass alle log dateien im Ordner (Log-files) bearbeitet/editiert wird.
sobald der prozess beendet ist, Verschiebe den Ordner (Log-files) nach pfad x

vielen Dank schonmal für eure mühe^^
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.754
Ort
in der Zukunft
Hm, dir fehlt doch nur die Schleife die alle *.log durch geht oder?

Batch ist aber eigentlich eh veraltet :D
In Powershell könnte das so aussehen

[src=powershell]
$logfolder = "c:\Temp"
$targetfolder= "c:\Alt"
$old = "TEST"
$new = "Ersetzt!"

Get-ChildItem $logfolder -Filter *.log | Foreach-Object{
Get-Content $_.FullName |Foreach-Object{$_.Replace($old,$new)}|Set-Content "$targetfolder\$_.Name"
Remove-Item $_.Fullname
}
}[/src]

--- [2015-11-26 22:15 CET] Automatisch zusammengeführter Beitrag ---

Und der Vollständigkeit halber noch als .bat

[src=bash] @echo off
SETLOCAL=ENABLEDELAYEDEXPANSION
Set SourceVerzeichnis=C:\Verzeichnis
Set ZielVerzeichnis=C:\VerzeichnisNeu
For /F "Tokens=*" %%f in ('Dir /b "%SourceVerzeichnis%\*.Log"') Do (
For /f "Tokens=* usebackq" %%a in ("%SourceVerzeichnis%\%%f") do (
Set foo=%%a
If !foo!==die-original-Zeil Set foo=die-neue-zeile
Echo !foo!>>"%ZielVerzeichnis%\%%f")
del "%SourceVerzeichnis%\%%f"
)[/src]
 
Zuletzt bearbeitet:

Baster

Neu angemeldet

Registriert
5 Apr. 2015
Beiträge
68
  • Thread Starter Thread Starter
  • #4
Danke drfuture
entschuldige bitte die späte antwort

es funktioniert soweit "fast" perfekt"

1-wie kann man alle files im ordner verschieben, momentan werden nur die Log-files verschoben,
2- del "%SourceVerzeichnis%\%%f" funktioniert nicht
3-wie kann ich "SourceVerzeichnis" und "ZielVerzeichnis" als variable setzen?

SourceVerzeichnis und .bat file sind immer im selben ordner.
Set SourceVerzeichnis= " %cd% " hat nicht funktioniert.
Ich hatte mir das so überlegt, dass das Zielverzeichnis gesucht werden soll , und der pfad als Variable speichern.

so sieht meine momentane .bat file

[src=bash]@echo off
SETLOCAL=ENABLEDELAYEDEXPANSION
Set SourceVerzeichnis=C:\Users\Baster\Desktop\Meine Logs
Set ZielVerzeichnis=C:\Backup\Logfiles
RENAME log Log
RENAME "C:\Backup\Logfiles\Log" "Log-back"
For /F "Tokens=*" %%f in ('Dir /b "%SourceVerzeichnis%\*.Log"') Do (
For /f "Tokens=* usebackq" %%a in ("%SourceVerzeichnis%\%%f") do (
Set foo=%%a
If !foo!==die-original-Zeil Set foo=die-neue-zeile
Echo !foo!>>"%ZielVerzeichnis%\%%f")
del "%SourceVerzeichnis%\%%f"

)[/src]

vielen Dank schonmal für eure mühe
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.754
Ort
in der Zukunft
[src=bash]@echo off
SETLOCAL=ENABLEDELAYEDEXPANSION
Set SourceVerzeichnis=%~dp0
Set ZielVerzeichnis=C:\Backup\Logfiles
RENAME log Log
RENAME "C:\Backup\Logfiles\Log" "Log-back"
For /F "Tokens=*" %%f in ('Dir /b "%SourceVerzeichnis%\*.Log"') Do (
For /f "Tokens=* usebackq" %%a in ("%SourceVerzeichnis%\%%f") do (
Set foo=%%a
If !foo!==die-original-Zeil Set foo=die-neue-zeile
Echo !foo!>>"%ZielVerzeichnis%\%%f")
del "%SourceVerzeichnis%\%%f"

)[/src]

Den Sourcepfad habe ich dir auf den .bat pfad gesetzt.
Wie meinst du das - das Zielverzeichnis "suchen" - als Variable wird es mit SET ja schon gesetzt.
Das Problem mit *alle* verschieben ist natürlich das die .bat auch verschoben werden würde :D
Wenn du in allen dateien suchen/ersetzen willst müsstest du nur das dir /b .... *.log in *.* ändern.
Direkten exclude / include gibt es in .bat nicht (meines wissens) - das geht in Powershell ebenfalls schöner ;)
Dort könnte man alles außer *.bat verschieben.
 

Baster

Neu angemeldet

Registriert
5 Apr. 2015
Beiträge
68
  • Thread Starter Thread Starter
  • #6
Hi

ich meine der gesamte inhalt von "Log-files" Ordner ink. .log files ect.. soll vershoben werden und nicht nur die Bearbeiteten .log files

LG
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.754
Ort
in der Zukunft
jo eben - du schriebst ja das du aber in dem log-files ordner auch die .bat selber liegen hast...
 

Baster

Neu angemeldet

Registriert
5 Apr. 2015
Beiträge
68
  • Thread Starter Thread Starter
  • #8
Hi

bitte entschuldige die verspätete antwort

aber es funtioniert immer noch nicht


[src=bash]@echo off
SETLOCAL=ENABLEDELAYEDEXPANSION
Set SourceVerzeichnis=%~dp0
Set ZielVerzeichnis="C:\Backup\Logfiles"
RENAME "C:\Backup\Logfiles" "Logfiles-back"
mkdir "C:\Backup\Logfiles"
For /F "Tokens=*" %%f in ('Dir /b "%SourceVerzeichnis%\*.ovpn"') Do (
For /f "Tokens=* usebackq" %%a in ("%SourceVerzeichnis%\%%f") do (
Set foo=%%a
If !foo!==auth-user-pass Set foo=auth-user-pass README.txt
Echo !foo!>>"%ZielVerzeichnis%\%%f")
del "%SourceVerzeichnis%\%%f"
)
pause[/src]

alle log-files aus dem SourceVerzeichnis sind weg, und das ZielVerzeichnis (C:\Backup\Logfiles) ist leer.

und der ursprüngliche Ordner (C:\Backup\Logfiles) wird in Logfiles-back umbenannt, mehr passiert leider nicht.

LG
 
Zuletzt bearbeitet:

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.754
Ort
in der Zukunft
  1. Bei dem Set in Zeile 4 dürfen KEINE Quotes sein
  2. Zeile 5/6 wenn ich schon variablen haben sollte man die auch nehmen ;) (ist aber nur Kosmetik)
  3. Ich vermute in der Zeile steht mehr als der Suchtext. Daher funzt Zeile 10 nicht. Hab die mal durch ein „replace“ innerhalb der Zeile ersetzt


[src=bash]@echo off
SETLOCAL=ENABLEDELAYEDEXPANSION
Set SourceVerzeichnis=%~dp0
Set ZielVerzeichnis=C:\Backup\Logfiles
RENAME "%ZielVerzeichnis%" "%ZielVerzeichnis%-back"
mkdir "%ZielVerzeichnis%"
For /F "Tokens=*" %%f in ('Dir /b "%SourceVerzeichnis%\*.ovpn"') Do (
For /f "Tokens=* usebackq" %%a in ("%SourceVerzeichnis%\%%f") do (
Set foo=%%a
Set foo=!foo:auth-user-pass=auth-user-pass README.txt!
Echo !foo!>>"%ZielVerzeichnis%\%%f")
del "%SourceVerzeichnis%\%%f"
)
Pause[/src]
 

Baster

Neu angemeldet

Registriert
5 Apr. 2015
Beiträge
68
  • Thread Starter Thread Starter
  • #10
Hi

1000 dank drfuture
mit deine batch datei kann ich alle log files verschieben 1A

nun habe ich es Jetzt etwas ergänzt (zeile 7) um auch .txt und .doc dateien vom SourceVerzeichnis ins ZielVerzeichnis zü Verschieben (ohne es zu verändern=, igw. klappt das auch nicht :o
[src=bash]@echo off
SETLOCAL=ENABLEDELAYEDEXPANSION
Set SourceVerzeichnis=%~dp0
Set ZielVerzeichnis=C:\Backup\Logfiles
RENAME "%ZielVerzeichnis%" "%ZielVerzeichnis%-back"
mkdir "%ZielVerzeichnis%"
for %%i in ("%SourceVerzeichnis=%%\*.txt" "%SourceVerzeichnis=%%\*.doc") do move "%%i" "%ZielVerzeichnis%"
For /F "Tokens=*" %%f in ('Dir /b "%SourceVerzeichnis%\*.log"') Do (
For /f "Tokens=* usebackq" %%a in ("%SourceVerzeichnis%\%%f") do (
Set foo=%%a
Set foo=!foo:die-original-Zeil Set foo=die-neue-zeile!
Echo !foo!>>"%ZielVerzeichnis%\%%f")
del "%SourceVerzeichnis%\%%f"
)
Pause
[/src]

PS zeile nr 13 Funktioniert auch nicht SourceVerzeichnis wird auch nicht gelöscht.

LG
 

musv

Bekannter NGBler

Registriert
15 Juli 2013
Beiträge
3.454
Ort
/dev/null
Warum nimmst du nicht die Powershell-Variante? Ich hab in den letzten Wochen Powershell auf Arbeit verwendet. Es fühlt sich noch immer etwas umständlich an. Aber im Gegensatz zu Batch ist Powershell ein massiver Fortschritt. Batch ist ein unbenutzbares Relikt aus der DOS-Ära und purer Masochismus.
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.754
Ort
in der Zukunft
Du willst an den Dateien nichts verändern - daher musst du nicht durch jede einzelne Datei itarieren....

[src=bash]@echo off
SETLOCAL=ENABLEDELAYEDEXPANSION
Set SourceVerzeichnis=%~dp0
Set ZielVerzeichnis=C:\Backup\Logfiles
RENAME "%ZielVerzeichnis%" "%ZielVerzeichnis%-back"
mkdir "%ZielVerzeichnis%"
For /F "Tokens=*" %%f in ('Dir /b "%SourceVerzeichnis%\*.ovpn"') Do (
For /f "Tokens=* usebackq" %%a in ("%SourceVerzeichnis%\%%f") do (
Set foo=%%a
Set foo=!foo:auth-user-pass=auth-user-pass README.txt!
Echo !foo!>>"%ZielVerzeichnis%\%%f")
del "%SourceVerzeichnis%\%%f"
)
move "%SourceVerzeichnis%\*.txt" "%ZielVerzeichnis%"
move "%SourceVerzeichnis%\*.doc" "%ZielVerzeichnis%"
Pause[/src]
 

Baster

Neu angemeldet

Registriert
5 Apr. 2015
Beiträge
68
  • Thread Starter Thread Starter
  • #13
Danke drfuture
einige kleine Fehler bekomme ich nicht behoben

um meinen Fehler eingrenzen zu können, habe ich das Script aufgesplittet in

z.b

[src=bash]@echo off
SETLOCAL=ENABLEDELAYEDEXPANSION
Set ZielVerzeichnis=C:\Backup\Logfiles
RENAME "%ZielVerzeichnis%" "%ZielVerzeichnis%-back"
Pause[/src]
da erhalte ich beim Ausführen des Skriptes immer einen „Syntaxfehler“ als Meldung.

und

[src=bash]@echo off
title testbatch
SETLOCAL=ENABLEDELAYEDEXPANSION
Set SourceVerzeichnis=%~dp0
del "%SourceVerzeichnis%\%%f"
Pause
[/src]

und hier erhalte ich beim Ausführen des Skriptes immer:

Code:
C:\Users\Baster\Desktop\Meine Logs

C:\Windows\system32>title testbatch

C:\Windows\system32>SETLOCAL=ENABLEDELAYEDEXPANSION

C:\Windows\system32>Set SourceVerzeichnis=C:\Users\Baster\Desktop\Meine Logs\

C:\Windows\system32>del "C:\Users\Baster\Desktop\Meine Logs\\f"
C:\Users\Baster\Desktop\Meine Logs\f konnte nicht gefunden werden

C:\Windows\system32>Pause
Drücken Sie eine beliebige Taste . . .

evtl. hat jemanden einen tipp

LG
 
Oben