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
Kommentar vom Moderator Biber am 18.06.2011 um 14:43:38 Uhr
Original-Titel "Batch- Findstr - SyntaxFehler bei der Ausführung" etwas an die Realität angeglichen.
GELÖST

Formatierte Aufbereitung einer DiskUse-Ausgabe per Batch

Frage Entwicklung Batch & Shell

Mitglied: cced-de

cced-de (Level 1) - Jetzt verbinden

17.06.2011, aktualisiert 18.06.2011, 6039 Aufrufe, 19 Kommentare, 3 Danke

Hallo zusammen,
ich möchte folgendes erreichen:
In einer Textdatei sollen die ersten 8 Zeilen gelöscht und verschiedene Texte gefunden und dann gelöscht werden bzw. umsortiert werden.
Die Quelldatei wird mit diskuse.exe" /d:w /w /t /v erzeugt.
Wobei der Aufbau der Datei folgender ist:

Die vorhandene TXT (CNT.txt) Datei sieht z.B. so aus:
01.
DiskUse                   Version 1.3 
02.
 
03.
Scanning Path C:\FileBase\. 
04.
Resolving Names. 
05.
Sorting. 
06.
 
07.
 
08.
CCED                Admin                   213 
09.
               36 : 06/17/2011 : C:\FileBase\Datei1.zip 
10.
              150 : 06/17/2011 : C:\FileBase\\09_I4_SandBlood.zip 
11.
               27 : 06/17/2011 : C:\FileBase\\DL.Log
Die geänderte Datei (Das Ergebnis) soll dann wie folgt aussehen.

01.
Datum          Dateiname                               Dateigröße in Bytes 
02.
-------------------------------------------------------------------------------------- 
03.
06/17/2011   Datei1.zip                                           4294967296 
04.
06/17/2011   09_I4_SandBlood.zip                               6589545 
05.
06/17/2011   DL.Log                                                          54824
Ist dieses Problem per Batch zu lösen?
Wenn ja wie? Bin euch für die Hilfe Dankbar!

Gruß CCED
Mitglied: Skyemugen
17.06.2011 um 14:50 Uhr
Aloha,


... spielen wir heute Ratequiz? Was hat der Threadtitel mit dem EP zu tun?

Batch- Findstr - SyntaxFehler bei der Ausführung sollte dazu nicht ein Skript bereits vorhanden sein?

Sollen wir dir jetzt etwas neues hinklatschen oder bei etwas helfen? Hast du bereits ein Skript (wovon ich anhand des Titels ausgehe) oder wie oder was?

Ist dieses Problem per Batch zu lösen?

Ja.

greetz André

P.S.: Warum enthälft die geänderte Datei, Daten, die in der Ursprungsdatei nicht vorkommen? bei der Ausgabe kann man auch gleich dir mit bisschen Schnickschnack drumherum nutzen ... was genau macht diskuse.exe eigentlich
Bitte warten ..
Mitglied: cced-de
17.06.2011 um 16:49 Uhr
Hallo,
natürlich hast du Recht!!
Ich habe zuvor versucht z.b. die unerwünschten Daten
so und ähnlich aus der Quelldatei herauszulöschen:
01.
for %i in (CNT1.txt) do findstr /b /i /C:"C:\FileBase\ %~ni" 1>nul echo && del "%i"
Aber egal wie ich es probiert habe, ich habe immer einen Syntaxfehler erhalten.

Zur Erklärung, diskuse.exe ist Copyright 1996, Microsoft Corporation und stammt aus dem Windows 2003 Resource Kit Utility
Beschreibung:
DiskUse is a command-line tool that scans directories on a hard disk and reports on space used by each user. This tool can scan a single directory, a directory tree, or an entire drive and can extract information on one user or all users. Reports can be displayed on-screen or output to a file, in table or text format. DiskUse can also list all the files owned by a user or users, filtered in a variety of ways.

Die einzigen Daten die in der gewünschten Zieldatei enthalten sind, die nich aus der Quelldatei stammen sind:
01.
Datum          Dateiname                               Dateigröße in Bytes  
02.
-------------------------------------------------------------------------------------- 
und die wiederum kann man ja einfach per
01.
 Echo  Datum          Dateiname                               Dateigröße in Bytes >Zieldatei.txt
einfügen.

Mein Script sieht zur Zeit so aus:
01.
"%tools%diskuse.exe" /d:w /w /t /v %Upload%>"%ProgPath%\CNT.txt" 
02.
set "CNTOld=CNT.txt" 
03.
set "CNTNEW=CNT1.txt" 
04.
set /a Von=1 
05.
set /a Bis=8 
06.
 
07.
if exist "%CNTNEW%" del "%CNTNEW%" 
08.
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%CNTOld%"') do ( 
09.
    if %%i lss %Von% echo.%%j 
10.
    if %%i gtr %Bis% echo.%%j 
11.
)>>"%CNTNEW%" 
12.
for %i in (CNT1.txt) do findstr /b /i /C:FileBase" %~ni 1>nul echo && del "%i" 
13.
echo finde erl. 
14.
echo.>>Content.txt 
15.
echo.>>Content.txt 
16.
echo -------------------------------------------------------------------------->>Content.txt 
17.
echo Groesse in Bytes    von Datum         Dateiname / Pfad>>Content.txt 
18.
Type CNT1.txt >>Content.txt

Wenn du weist, wie ich mein Problem lösen kann, wäre ich die sehr dankbar, wenn du mir sagen könntest wie.

Gruß und schon mal ein Danke im Voraus
CCED
Bitte warten ..
Mitglied: Friemler
17.06.2011 um 20:27 Uhr
Hallo cced-de

den Thread solltest Du wirklich mal umbenennen...

Teste mal das hier:
01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
 
06.
set "InputFile=%ProgPath%\CNT.txt" 
07.
set "OutputFile=content.txt" 
08.
 
09.
 
10.
"%tools%\diskuse.exe" /d:w /w /t /v %Upload% >"%InputFile%" 
11.
 
12.
 
13.
(echo. 
14.
 echo. 
15.
 
16.
 echo Datum       Dateiname                                          Groesse in Bytes 
17.
 echo ------------------------------------------------------------------------------- 
18.
 
19.
 
20.
 for /f "skip=8 tokens=2* delims=:" %%a in ('findstr "^" "%InputFile%"') do ( 
21.
   for /f "tokens=1" %%i in ("%%a") do ( 
22.
     set "String=%%i" 
23.
     call :ConcatString 12 0 
24.
25.
 
26.
   for /f "tokens=*" %%i in ("%%b") do ( 
27.
     set "String=%%~nxi" 
28.
     call :ConcatString 51 0 
29.
30.
 
31.
   for /f "tokens=*" %%i in ("%%b") do ( 
32.
     set "String=%%~zi" 
33.
     call :ConcatString 16 1 
34.
35.
 
36.
   call :OutputLine 
37.
38.
) >"%OutputFile%" 
39.
 
40.
exit /b 
41.
 
42.
 
43.
 
44.
:ConcatString 
45.
  >"%TEMP%\strlen.txt" <NUL (set /p "=<%String%"&echo.&set /p "=<"&echo.) 
46.
  for /f "delims=:" %%l in ('findstr /o /b "<" "%TEMP%\strlen.txt"') do set /a "nSpaces=%1-(%%l-3)" 
47.
  del "%TEMP%\strlen.txt" 
48.
 
49.
  setlocal enabledelayedexpansion 
50.
  set "Space=" 
51.
  for /l %%z in (1,1,%nSpaces%) do set "Space=!Space! " 
52.
  endlocal & set "Space=%Space%" 
53.
 
54.
  if "%2" equ "0" set "Line=%Line%%String%%Space%" 
55.
  if "%2" equ "1" set "Line=%Line%%Space%%String%" 
56.
exit /b 
57.
 
58.
 
59.
 
60.
:OutputLine 
61.
  for %%s in ("%Line%") do echo %%~s 
62.
  set "Line=" 
63.
exit /b
Gruß
Friemler


[EDIT]
Nachgereichte Erklärung:

Die FOR-Schleife in Zeile 20 verarbeitet die Datei, die von DISKUSE erzeugt wurde, zeilenweise.

Wegen skip=8 werden dabei die ersten 8 Zeilen übersprungen. Das eigentliche Einlesen übernimmt der FINDSTR-Befehl, der wegen "^" nach allen Zeilen sucht, die einen Anfang haben. Er findet also alle Zeilen.

Als Trennzeichen zwischen den einzelnen Bestandteilen (Tokens) einer Zeile wird wegen delims=: der Doppelpunkt definiert.

Wegen tokens=2* wird das Datum der Laufvariablen %%a zugewiesen und der Dateiname inkl. Pfad der automatisch erzeugten Laufvariablen %%b.

In beiden Fällen enthalten die Laufvariablen aber noch führende (und nachfolgende) Leerzeichen. Die würden vor allem bei der Ermittelung der Dateigröße zu einem Fehler führen und außerdem das Layout der Tabelle unschön machen.

Die Leerzeichen um das Datum werden von der FOR-Schleife in den Zeilen 21 bis 24 entfernt und nur der Datums-String an die Laufwariable %%i zugewiesen.

Die FOR-Schleife in den Zeilen 26 bis 29 entfernt die führenden Leerzeichen des Dateipfades/-namens und ermittelt wegen dem ~nx in set "String=%%~nxi" den Namen inkl. Erweiterung der Datei.

Die FOR-Schleife in den Zeilen 31 bis 34 entfernt auch die führenden Leerzeichen des Dateipfades/-namens und ermittelt wegen dem ~z in set "String=%%~zi" die Größe der Datei.

Das Unterprogramm ConcatString, was aus allen diesen FOR-Schleifen aufgerufen wird, hat als ersten Parameter die Breite der jeweiligen Tabellenspalte (beim Datum also 12, beim Dateinamen 51 und bei der Dateigröße 16 Zeichen). Der zweite Parameter gibt an, ob der Wert linksbündig (zweiter Parameter gleich 0) oder rechtsbündig (zweiter Parameter gleich 1) ausgegeben werden soll. Bei der Dateigröße ist die rechtsbündige Ausgabe sinnvoll, deshalb das call :ConcatString 16 1 in Zeile 33.

Im Unterprogramm ConcatString wird in den Zeilen 45 und 46 die Länge des auszugebenden Strings ermittelt und mit diesem Wert berechnet, wie viele Leerzeichen ergänzt werden müssen, um die Tabellenspalte auf die gewünschte Breite (enthalten im Parameter %1) aufzufüllen. Dazu wird eine Hilfsdatei verwendet, die in Zeile 47 wieder gelöscht wird. Da alleine die Erklärung dieser zwei Zeilen eine halbe DIN A4 Seite füllen würde, möge der geneigte Leser die genaue Funktionsweise unter Zuhilfenahme der Hilfe von FINDSTR, seines analytischen Verstandes und dem Betrachten der erzeugten Hilfsdatei in einem (Hex-)Editor selbst herausfinden .

In den Zeilen 49 bis 52 wird eine Variable erzeugt, die aus der berechneten Anzahl von Leerzeichen besteht. Da hierfür die verzögerte Variablenerweiterung benötigt wird, wird diese in Zeile 49 eingeschaltet und in Zeile 52 wieder ausgeschaltet. Um die erzeugte Variable Space außerhalb dieses Blocks zur Verfügung zu haben, muss in der Zeile mit dem ENDLOCAL-Befehl, mit diesem durch den Operator & verkettet, die Zuweisung set "Space=%Space%" stehen. Genaueres dazu findet man in diesem Thread und in diesem Tutorial von Benutzer pieh-ejdsch.

In den Zeilen 54 und 55 wird der Inhalt einer Zeile in der Ausgabedatei zusammengebaut (die Variable Line wird verlängert), in Abhängigkeit des Parameters %2 werden die eben erzeugten Leerzeichen vor (Zeile 55, rechtsbündig) oder nach (Zeile 54, linksbündig) dem Wert der aktuellen Tabellenspalte eingefügt.

Nachdem eine Zeile der Ausgabedatei komplett erzeugt wurde, wird in Zeile 36 das Unterprogramm OutputLine aufgerufen.

Die Ausgabe erfolgt in Zeile 61 über eine FOR-Schleife, da beim Ausgeben von Laufvariablen der FOR-Schleife Sonderzeichen wie %, &, ^ keine Probleme machen (für die Experten: Bei Verwendung von verzögerter Variablenerweiterung macht die Kombination ^! Probleme). Danach wird in Zeile 62 die Variable Line wieder gelöscht, damit beim nächsten Durchlauf der Hauptschleife (Zeilen 20 bis 37) wieder mit einer leeren Puffervariablen begonnen werden kann.

Da die Zeilen 13 bis 38 einen in Klammern eingeschlossenen Block bilden, werden sämtliche Ausgaben, auch im Unterprogramm OutputLine, mit >"%OutputFile%" in Zeile 38 in die Ausgabedatei umgeleitet.

Ausführliche Informationen zu FOR-Schleife liefert mein Tutorial zur FOR-Schleife.
[/EDIT]
Bitte warten ..
Mitglied: cced-de
18.06.2011 um 13:34 Uhr
Hallo Friemler,
erst einmal vielen Dank für deine Unterstützung!! Super gelöst. Alles was ist wollte funktioniert nachdem ich die Pfade angepasst habe.
Nur ein Problem habe ich noch mit der Batch.

Der Code, den du mir zur Verfügung gestellt hast, ist nur ein "kleiner" Bestandteil eines größeren Scripts.
Und nach der Ausführung deines Codes wird die Batch ja mit Exit /B beendet. Allerdings soll die Batch danach bei weiterlaufen.

Kommentiere ich das Exit /B mit Rem aus, erhalte ich die Fehlermeldung:
01.
Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.
lässt sich das noch umgehen?

LG CCED
Bitte warten ..
Mitglied: Friemler
18.06.2011 um 13:46 Uhr
Hallo CCED,

ConcatString und OutputLine sind Unterprogramme. Wenn Du einfach das EXIT /b entfernst, wird versucht den Code danach auszuführen, bis das Dateiende erreicht ist. Eigenen Code musst Du vor das EXIT /B platzieren.

Gruß
Friemler
Bitte warten ..
Mitglied: cced-de
18.06.2011 um 14:17 Uhr
hmmmm,
das funktioniert aber leider nicht.
Ich habe das mal wie folgt gemacht...
01.
  
02.
:OutputLine 
03.
  for %%s in ("%Line%") do echo %%~s 
04.
  set "Line=" 
05.
 
06.
del %InFile% 
07.
del %Inputfile% 
08.
 
09.
echo ! - %Date% - %Time%: Mailtext wird erstellt >>%SLOG% 
10.
echo ! - %Date% - %Time%: InfoMail wird Versandt >>%SLOG% 
11.
echo ! - InfoMail wird Versandt 
12.
echo ! - %Date% - %Time%: Untersuche %Upload%>>%SLOG% 
13.
echo ! - Untersuche %Upload%\ 
14.
echo %Upload% >%Temp%\LW.txt 
15.
FOR /F "tokens=1 delims=\ " %%i in (%Temp%\lw.txt) do set LW=%%i 
16.
%ProgLW% 
17.
cd %ProgPath% 
18.
"%tools%blat.exe" "%ProgPath%Content.txt" -from %MyMail% -U %MySMTPLogin% -pw %MyMailPW% -to %MyMail% -bf %Progpath%%Mailinglst% -subject "%Subject%"? 
19.
if errorlevel=0 echo ! - %Date% - %Time%: Mail wurde erfolgreich versandt >>%SLOG% 
20.
 
21.
exit /b
und hier taucht wieder der Fehler auf:
01.
Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess  verwendet wird.
Bitte warten ..
Mitglied: Friemler
18.06.2011 um 14:25 Uhr
Hallo CCED,

das Programm endet bei dem EXIT /b in Zeile 40! Die EXIT /b-Befehle in den Zeilen 56 und 63 dienen zum Rücksprung ins Hauptprogramm, nachdem das jeweilige Unterprogramm abgearbeitet wurde.

Gruß
Friemler
Bitte warten ..
Mitglied: cced-de
18.06.2011 um 14:33 Uhr
Grummellllll..
kaum macht mann´s richtig, schon funktioniert es !
Danke für deine Unterstützung !!!!!!!!

Gruß CCED
Bitte warten ..
Mitglied: Biber
18.06.2011 um 14:38 Uhr
[OT] @Friemler

These 1: Das Einsparen von Kommentarzeilen in Skripten hat keinen positiven Einfluss auf die Entwicklungszeit.

These 2: Wenn ein "exit /b" statt des vorgesehenen "goto :eof" zwar funktioniert, aber über keine Suchmaschine dieser Galaxie als Abschlussmarke eines geCALLten Batch-Unterprogrammblocks erklärt wird, dann erleichtert es die Les- und Nachvollziehbarkeit für Wochenendskripter nicht.

Es gibt immer wieder Beiträge, bei denen mir der Begriff "selbst verursachte Leiden" durch den Kopf schiesst...

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: Friemler
18.06.2011 um 14:40 Uhr
Gern geschehen.

BTW: Die Zeilen 14 und 15 aus deiner obigen Ergänzung könntest Du folgendermaßen ersetzen/vereinfachen:
for %%i in ("%Upload%") do set "LW=%%~di"
Gruß
Friemler
Bitte warten ..
Mitglied: Friemler
18.06.2011 um 14:55 Uhr
[OT] @Biber

Zu These 1:
Der TO hat selbst Code gepostet, der nicht den Eindruck machte, er sei völlig ahnungslos. Nachfragen zum Code beantworte ich gerne, vorausgesetzt dass der Fragesteller auch etwas Eigeninitiative zeigt und die brain.exe gestartet hat . Und das jemand eine solche Nachfrage stellen könnte, wäre mir im Traum nicht eingefallen; ich hätte sowieso keinen Kommentar für diesen Fall eingebaut.

Zu These2:
Wenn ich bei Google nach "batch exit /b" suche, erhalte ich als erstes Suchergebnis die sehr gute Seite von Rob van der Woude, wo genau das erklärt wird. Deine Aussage erschien mir auch sehr unwahrscheinlich.

Um selbst verursachte Leiden zu vermeiden, müsste ich dem Forum den Rücken kehren. Es gibt eben Dinge, die man hinnehmen muss.

Gruß
Friemler
[OT]
Bitte warten ..
Mitglied: Friemler
18.06.2011 um 16:26 Uhr
[OT]@Biber

Erklärung zum Script nachgeliefert. Die These mit der Zeitersparnis hat sich auch hier nicht bewahrheitet .

Gruß
Friemler
[/OT]
Bitte warten ..
Mitglied: Friemler
18.06.2011 um 17:03 Uhr
Wenn Dein Problem damit gelöst ist, setze doch bitte noch den grünen Haken.

Gruß
Friemler
Bitte warten ..
Mitglied: Biber
18.06.2011 um 17:34 Uhr
Och Friemler,

Zitat von Friemler:
[OT]@Biber

Erklärung zum Script nachgeliefert. Die These mit der Zeitersparnis hat sich auch hier nicht bewahrheitet .

Gruß
Friemler
[/OT]
Ich wollte dich doch mit meiner kleinen Randbemerkung nicht zu unbezahlter Wochenendarbeit anstiften.
Und ehrlich, mit
These 1: Das Einsparen von Kommentarzeilen in Skripten hat keinen positiven Einfluss auf die Entwicklungszeit.
...meinte ich wirklich so kleine Kommentare wie "REM hier Rücksprung zur CALLing-Zeile".

Ausserdem - ja hey! Es waren doch nur zwei Thesen. Unbewiesene Behauptungen. Mehr nicht.

Wenn ich Glaubenskriege hätte auslösen wollen, dann hätte ich 99 davon an irgendeine Kirchentür getackert.
Hier sollte es wirklich nur eine Randmerkung ohne unmittelbar abzuleitenden Handlungsbedarf sein.

Dennoch vielen Dank für deine Mühe.

Schönes Wochenende
Biber
Bitte warten ..
Mitglied: Friemler
18.06.2011 um 17:41 Uhr
Na ja, wenn mich jemand bei meiner Ehre packt...

Und grundsätzlich gebe ich Dir mit den Kommentaren ja recht, hatten wir ja auch schonmal am Anfang unserer "Bekanntschaft". Deswegen auch die nachgelieferte Erklärung.

Auch Dir ein schönes WE
Friemler
Bitte warten ..
Mitglied: cced-de
18.06.2011 um 20:21 Uhr
Hallo, ich noch mal...

nur um meinen bescheidenen Senf auch noch einmal dazu zu geben
1. Ja ich bin ein WE Scriptler!!!
2. Ja, ich haben meinen Beitrag falsch deklariert!
3. Nur damit Ihr seht, wobei Ihr mir geholfen habt... Poste ich hier mal mein gesamtes Script....
Kommentare und Verbesserungsvorschläge sind immer willkommen. Bitte keine annähernde Perfektion erwarten bin eben nur WochenEnd scriptbastler!!!

Dann noch zur Erklärung was das Script macht:
Es ist ein Client- und Server Script.
Die Serverseite des Scripts sieht in einem Ordner nach, ob neue Daten vorhanden sind.
Wenn ja, werden diese gepackt und in einen anderen Ordner verschoben. Nach X Tagen werden die gepackten Daten in ein weiteres Verzeichnis verschoben (OLD) und weiter nach x Tagen gelöscht.
Die Clientseite grob beschrieben... guckt auf einem Webserver nach, ob dort neue gepackte Daten liegen, und bietet diese zum Download an.
Es werden zusätzliche Tools benutzt:
blat.dll
blat.exe
blat.lib
Blat is a Win32 command line utility that sends eMail using SMTP or post to usenet using NNTP.
____________________________________________________________________________________________________
delage32.exe
DelAge32 löscht oder verschiebt Dateien mit einem Mindestalter (Anzahl Tage).
____________________________________________________________________________________________________
Diskuse.exe
DiskUse is a command-line tool that scans directories on a hard disk and reports on space used by each user.
This tool can scan a single directory, a directory tree, or an entire drive and can extract information on
one user or all users. Reports can be displayed on-screen or output to a file, in table or text format.
DiskUse can also list all the files owned by a user or users, filtered in a variety of ways
____________________________________________________________________________________________________
NewRename.exe
Die Eigenentwicklung eines Freundes zum automatischem umbenennen von Dateien.
____________________________________________________________________________________________________
robocopy.exe XP010
In den Windows Server 2003 Resource Kit Tools befindet sich das kostenlose Kommandozeilen-Tool Robocopy.exe.
Damit hat man den absoluten Spezialist für alle Belange der Datensynchronisation (Backup).
Mit 72 Schaltern erledigt das Tool selbst ungewöhnliche Aufgaben extrem schnell und informativ.
____________________________________________________________________________________________________
wget.exe 1.11.4
The recursive retrieval of HTML pages, as well as FTP sites is supported -- you can use Wget to make mirrors
of archives and home pages, or traverse the web like a WWW robot (Wget understands /robots.txt).
Wget works exceedingly well on slow or unstable connections, keeping getting the document until it is fully retrieved.
Re-getting files from where it left off works on servers (both HTTP and FTP) that support it.
Matching of wildcards and recursive mirroring of directories are available when retrieving via FTP.
Both HTTP and FTP retrievals can be time-stamped, thus Wget can see if the remote file has changed since
last retrieval and automatically retrieve the new version if it has.
Wget supports proxy servers, which can lighten the network load, speed up retrieval and provide access behind firewalls.
If you are behind a firewall that requires the use of a socks style gateway, you can get the socks library
and compile wget with support for socks.
____________________________________________________________________________________________________
So, und nun das Script....

01.
@echo off 
02.
set "Programm=LoaDown 3.0.0 bY Ein-FTPServer" 
03.
Title=%Programm% 
04.
 
05.
:: (c) 2008-2011 by Markus Herkenrath Info@cced.de 
06.
:: ********************************************** 
07.
:: ******        Konfiguration             ****** 
08.
:: ********************************************** 
09.
 
10.
 
11.
cls 
12.
 
13.
:: // Hier werden alle Scriptvariablen  gesetzt //:: 
14.
:: ------------------------------------------------- 
15.
 
16.
set ProgPath=%CD%\ 
17.
set ProgDrive=%ProgPath:~,2% 
18.
set Tools="%ProgPath%ExtTools\" 
19.
set Logfile="%ProgPath%LoaDown3.0.0.Log" 
20.
set alt="%Temp%\DL.Log%" 
21.
set neu="%Temp%\DL.Lst" 
22.
set Bearbeite="C:\Windows\System32\Notepad.exe" 
23.
set Temp="%Temp%\!LoadDown\" 
24.
md "%Temp%\!LoadDown" 
25.
 
26.
 
27.
if exist "%Temp%\lw.txt" del "%Temp%\lw.txt" 
28.
 
29.
 
30.
:: // Hier werden alte daten gelöscht, sofern vorhanden //:: 
31.
:: ------------------------------------------------- 
32.
 
33.
if exist %alt% del /Q /F %alt% 
34.
if exist %neu% del /Q /F %neu% 
35.
 
36.
 
37.
 
38.
:: // Hier beginnt das eigentliche Script //:: 
39.
:: ------------------------------------------------- 
40.
 
41.
if not exist config.ini. ( 
42.
Set Farbe=A0  
43.
echo Willkommen bei %Programm% 
44.
echo Keine Config.Ini gefunden. 
45.
echo Diese wird jetzt angelegt 
46.
goto MakeIni 
47.
) ELSE ( 
48.
FOR /F "eol=;" %%i in ('find "10=" config.ini') do set logfile=%%i 
49.
goto UseIni 
50.
51.
 
52.
:MakeIni 
53.
 
54.
:: // Hier wird eine Config.Ini angelegt, sofern keine gefunden wurde. //:: 
55.
:: ------------------------------------------------- 
56.
 
57.
:WRITEINI 
58.
Echo Write INI 
59.
cls 
60.
echo Speicher Deine Aenderungen und beende dann bitte Notepad 
61.
echo __________________________________________________________________________ 
62.
echo.  
63.
echo 1: Bitte passe die angegebenen Daten nach deinen Beduerfnissen an. 		>>"%ProgPath%"config.ini 
64.
echo 2: Für alle Informationen die Sie nicht eintragen wollen, schreiben Sie bitte 	>>"%ProgPath%"config.ini 
65.
echo 3: " Leer " in die Zeile.  	>>"%ProgPath%"config.ini 
66.
echo.4: Bitte unbedingt die Zeilenzahl (z.B. 01=; bis 29=; stehen lassen) 		>>"%ProgPath%"config.ini 
67.
echo 5: Bitte lesen Sie hinter der Zeilenzahl die Beschreibung		  		>>"%ProgPath%"config.ini 
68.
echo 6: Am Anfang der Beschreibung stehen jeweils C: S: oder C+S: Die dazugehörigen	>>"%ProgPath%"config.ini 
69.
echo 7: Werte sind entweder C: für Clients S: für Server C+S: für beide Module		>>"%ProgPath%"config.ini 
70.
echo 8: ______________ die ersten 11 Zeilen können Sie loeschen ______________ 		>>"%ProgPath%"config.ini 
71.
echo 9:   			>>"%ProgPath%"config.ini 
72.
echo 10:   			>>"%ProgPath%"config.ini 
73.
echo 11:_______________________________________________________________________		>>"%ProgPath%"config.ini 
74.
echo Dein Pseudonym		01=;C+S: Hier dein Pseudonym (z.B. Die Anfangsbuchstaben deines Namens)>>"%ProgPath%"config.ini 
75.
echo Ein-FTPServer.Info		02=;C:	 Hier der Name des FTP Servers (z.B. ftp.Ein-FTPServer.info)   	>>"%ProgPath%"config.ini 
76.
echo FTP Loginname		03=;C:   Der FTP Loginname Mueller1234   	>>"%ProgPath%"config.ini 
77.
echo FTP Passwort		04=;C:   Das FTP Passwort 1234gEhEiMabcd   >>"%ProgPath%"config.ini 
78.
echo FTP Pfad		05=;C:   Und der Pfad aus dem geladen werden soll Abschließenden "\" nicht vergessen (z.B. /subdomains/down/httpdocs/) 	>>"%ProgPath%"config.ini 
79.
echo Deine@EMailAdresse.de	06=;C+S: Ihre E-Mailadresse  		>>"%ProgPath%"config.ini 
80.
echo SMTP-Login-Name		07=;C+S: SMTP Loginname (oft die E-Mailadresse)  >>"%ProgPath%"config.ini 
81.
echo SMTP-Server.de		08=;C+S: Ihr SMTP Server  		>>"%ProgPath%"config.ini 
82.
echo gEhEiM			09=;C+S: Ihr Mail Passwort  		>>"%ProgPath%"config.ini 
83.
echo LogfileName		10=;C+S: z.B. Download.Log.  		>>"%ProgPath%"config.ini 
84.
echo Logfilegroesse		11=;C+S: z.B. 30200 = 30 Kb ist völlig ausreichend.  		>>"%ProgPath%"config.ini 
85.
echo ServerFile		12=;C+S: z.B. DL.LOG   			>>"%ProgPath%"config.ini 
86.
echo Programmstatus		13=;C+S: Status: Wie soll das Programm laufen? Als Server=1, als Client=2 immer Fragen=3?>>"%ProgPath%"config.ini 
87.
echo Auswahl			14=;C:   Welche Daten sollen gezogen werden? *.*. *.Rar, DateiName.Zip oder AUSWAHL Wobei dann hier eine Liste der Aktuellen Downloads angeboten wird. 	>>"%ProgPath%"config.ini 
88.
echo Ziel			15=;C:   Wo sollen die Daten gespeichert werden? Abschließenden "\" nicht vergessen(z.B. C:\Downloads\) >>"%ProgPath%"config.ini 
89.
echo 0C			16=;C:   Client Farbeinstellung  z.B. 1F testen mit CMD \ Color /?  >>"%ProgPath%"config.ini 
90.
echo 0C			17=;S:   Server Farbeinstellung  z.B. 1F testen mit CMD \ Color /?  >>"%ProgPath%"config.ini 
91.
echo Quelle.txt		18=;S:   Quelldatei aus der die Ladeverzeichnisse gelesen werden.  >>"%ProgPath%"config.ini	 
92.
echo DataType.ini		19=;S:   Dateiname die Dateitypen (später mehr *.exe *.rar *.zip usw...) 			>>"%ProgPath%"config.ini 
93.
echo C:\Downloads\		20=;S:   Pfad wo die fertigen Downloads hinverschoben werden sollen. (FTP / Webverzeichnis) 	>>"%ProgPath%"config.ini 
94.
echo 1			21=;S:   1 = Kopieren oder 2 = Verschieben - Tragen Sie nur den Wert ein 			>>"%ProgPath%"config.ini 
95.
echo 3			22=;S:   Tage, nach denen die Files vom DL Verzeichnis in ein "Old" Verzeichnis verschoben werden >>"%ProgPath%"config.ini 
96.
echo 7			23=;S:   Tage, nach denen die Files aus dem "OLD" Verzeichnis endgültig gelöscht werden 		>>"%ProgPath%"config.ini 
97.
echo D:\OLD_FileZ\		24=;S:   Pfad wo "alte" Files nach x Tagen hinverschoben werden sollen  >>"%ProgPath%"config.ini 
98.
echo UserMail.Lst		25=;S:   Textdatei mit E-Mailadressen von Usern die über neue Downloads informiert werden sollen. >>"%ProgPath%"config.ini 
99.
echo Neue_FileZ		26=;S:   Subject der Benachrichtigungs E-Mail. Bitte keine leerzeichen verwenden>>"%ProgPath%"config.ini 
100.
echo MailFile		27=;S:   Dateiname Der Textdatei die den Inhalt der BenachrichtigungsMail enthält>>"%ProgPath%"config.ini 
101.
echo 3			28=;S:   Soll der Admin über erfolgte Downloads benachrichtigt werden? 1=Ja 2=Nein 3=Fragen>>"%ProgPath%"config.ini 
102.
echo info@Ein-FTPServer.de		29=;S:   Die E-Mailadresse des Admins >>"%ProgPath%"config.ini 
103.
%Bearbeite% Config.ini 
104.
 
105.
 
106.
:: // Hier wird eine Config.Ini ausgelesen und die Werte in Variablen geschrieben. //:: 
107.
:: ------------------------------------------------- 
108.
 
109.
:USEINI 
110.
Echo Use INI 
111.
%ProgDrive% 
112.
cd "%Progpath%" 
113.
echo Config.Ini wird eingelesen.... 
114.
 
115.
FOR /F "eol=;" %%i in ('find "01=" config.ini') do set User=%%i 
116.
FOR /F "eol=;" %%i in ('find "02=" config.ini') do set ftpsrv=%%i 
117.
FOR /F "eol=;" %%i in ('find "03=" config.ini') do set ftpname=%%i 
118.
FOR /F "eol=;" %%i in ('find "04=" config.ini') do set ftppw=%%i 
119.
FOR /F "eol=;" %%i in ('find "05=" config.ini') do set ftppath=%%i 
120.
FOR /F "eol=;" %%i in ('find "06=" config.ini') do set MyMail=%%i 
121.
FOR /F "eol=;" %%i in ('find "07=" config.ini') do set MySMTPLogin=%%i 
122.
FOR /F "eol=;" %%i in ('find "08=" config.ini') do set MyMailSrv=%%i 
123.
FOR /F "eol=;" %%i in ('find "09=" config.ini') do set MyMailPW=%%i 
124.
FOR /F "eol=;" %%i in ('find "10=" config.ini') do set Logfile=%%i 
125.
FOR /F "eol=;" %%i in ('find "11=" config.ini') do set LogSize=%%i 
126.
FOR /F "eol=;" %%i in ('find "12=" config.ini') do set Serverfile=%%i 
127.
FOR /F "eol=;" %%i in ('find "13=" config.ini') do set Status=%%i 
128.
FOR /F "eol=;" %%i in ('find "14=" config.ini') do set Data=%%i 
129.
FOR /F "eol=;" %%i in ('find "15=" config.ini') do set Ziel=%%i 
130.
FOR /F "eol=;" %%i in ('find "16=" config.ini') do set FarbeC=%%i 
131.
FOR /F "eol=;" %%i in ('find "17=" config.ini') do set FarbeS=%%i 
132.
FOR /F "eol=;" %%i in ('find "18=" config.ini') do set Quelle=%%i 
133.
FOR /F "eol=;" %%i in ('find "19=" config.ini') do set DataType=%%i 
134.
FOR /F "eol=;" %%i in ('find "20=" config.ini') do set UPLOAD=%%i 
135.
FOR /F "eol=;" %%i in ('find "21=" config.ini') do set Type=%%i 
136.
FOR /F "eol=;" %%i in ('find "22=" config.ini') do set MoveFile=%%i 
137.
FOR /F "eol=;" %%i in ('find "23=" config.ini') do set KillFile=%%i 
138.
FOR /F "eol=;" %%i in ('find "24=" config.ini') do set OldFiles=%%i 
139.
FOR /F "eol=;" %%i in ('find "25=" config.ini') do set MailingLST=%%i 
140.
FOR /F "eol=;" %%i in ('find "26=" config.ini') do set Subject=%%i 
141.
FOR /F "eol=;" %%i in ('find "27=" config.ini') do set MailFile=%%i 
142.
FOR /F "eol=;" %%i in ('find "28=" config.ini') do set InfoAdmin=%%i 
143.
FOR /F "eol=;" %%i in ('find "29=" config.ini') do set AdminMail=%%i 
144.
echo ____________________________________________________________________ >>%LOGFILE% 
145.
echo ! - %Date% - %Time%: Start von %ProgName%%Progvers% >>%LOGFILE% 
146.
echo ! - %Date% - %Time%: Config.ini ausgewertet >>%LOGFILE% 
147.
rem  cls 
148.
color %FarbeC%	 
149.
%Tools%Blat -install %MyMailSrv% %MyMail% >NUL 
150.
 
151.
 
152.
:: ----------------------------------------------------------------------------------------------------- 
153.
:: 
154.
 
155.
if %Status% EQU 1 goto Server 
156.
if %Status% EQU 2 goto Client 
157.
if %Status% EQU 3 goto Fragen 
158.
 
159.
 
160.
:fragen 
161.
:: // In dieser Abfrage wird festgelegt, wie das Script weitergeführt wird (als Client oder als Server) //:: 
162.
:: ------------------------------------------------- 
163.
 
164.
set "M=%temp%\Meldung.vbs" 
165.
>%M% echo Set args=WScript.Arguments:WScript.Quit MsgBox(args(0),args(1),args(2)) 
166.
 cscript //nologo %M% "Als Client starten =Ja - Als Server starten =Nein" 3 "Entscheidung"  
167.
if errorlevel 7 echo OK & goto Server 
168.
if errorlevel 6 echo OK & goto client 
169.
if errorlevel 2 echo OK & goto Abbruch 
170.
 
171.
 
172.
:client 
173.
cls 
174.
Echo Client 
175.
:: // Hier wird der Client ausgeführt. //:: 
176.
:: ------------------------------------------------- 
177.
 
178.
echo ! - %Date% - %Time%: Client gestartet >>%LOGFILE% 
179.
if %Data%==Auswahl goto DatenListe 
180.
echo ! - %Date% - %Time%: Parameter fuer Daten:%Data% und fuer Ziel:%Ziel% wurden uebernommen. >>%LOGFILE% 
181.
set ftpdata=ftp://%ftpname%:%ftppw%@%ftpsrv%%ftppath% 
182.
echo ! - %Date% - %Time%: FTPDaten: ftp://%ftpname%:gEhEiM@%ftpsrv%/%ftppath%  >>%LOGFILE% 
183.
echo +++ Teste auf neue Files 
184.
echo. 
185.
echo. 
186.
echo. 
187.
echo %Data% wird geholt und nach "%Ziel%" gespeichert 
188.
echo _______________________________________________ 
189.
echo. 
190.
	echo. 
191.
	echo %Date% - %Time% es sind neue Daten vorhanden. 
192.
	echo  Moment bitte...... 
193.
	echo. 
194.
	echo wscript.sleep 2000>"%temp%\sleep.vbs" 
195.
		wscript "%temp%\sleep.vbs" 
196.
        cls 
197.
	%Tools%wget -nc -c -P"%Ziel%"  %ftpdata%%Data% 
198.
	echo ! - %Date% - %Time%: Download beendet: %Zeile% wurde nach %Ziel% gespeichert. >>%LOGFILE% 
199.
	cls 
200.
	goto ende 
201.
	 
202.
:DATENLISTE 
203.
Echo Datenliste 
204.
 
205.
:: // Hier wird die Liste mit neuen Downloads vom FTP Server heruntergeladen. //:: 
206.
:: ------------------------------------------------- 
207.
 
208.
echo ! - %Date% - %Time%: Liste aktueller Files wird gezogen >>%LOGFILE% 
209.
set ftpdata=ftp://%ftpname%:%ftppw%@%ftpsrv%%ftppath% 
210.
%tools%wget -c -P"%Temp%"  "%ftpdata%%ServerFile%" 
211.
echo.  
212.
echo 1:Loeschen Sie die Dateinamen, die Sie NICHT downloaden wollen aus der Liste. >%neu% 
213.
echo 2:Hinterlassen Sie dabei aber bitte KEINE leeren Zeilen. >>%neu% 
214.
echo 3:Die ersten 5 Zeilen dieser Datei bitte auch nicht aendern. >>%neu% 
215.
echo 4:______________________________________________________________________________ >>%neu% 
216.
echo. >>%neu% 
217.
type "%Temp%\dl.log" >>%neu% 
218.
for /f "skip=19 usebackq delims=" %%i in (%Alt%) do call :ProcessLine "%%i" 
219.
goto LADELISTE 
220.
 
221.
:PROCESSLINE 
222.
set "Zeile=%~1" 
223.
 
224.
::ab 35. Buchstaben ausgeben 
225.
(echo %Zeile:~35%)>>"%Neu%" 
226.
goto :eof 
227.
 
228.
:LADELISTE 
229.
echo Ladeliste 
230.
echo ! - %Date% - %Time%: %neu% wurde erzeugt >>%LOGFILE% 
231.
%Bearbeite% %neu% 
232.
for /f "skip=5 usebackq delims=" %%i in (%Neu%) do call :ProcessLine1 "%%i" 
233.
goto InfoAdmin 
234.
 
235.
:PROCESSLINE1 
236.
set "Zeile=%~1" 
237.
%Tools%wget -c -P"%Ziel%"  %ftpdata%%Zeile% 
238.
goto Ausgabe 
239.
 
240.
:AUSGABE 
241.
echo ! - %Date% - %Time%: Download beendet: %Zeile% wurde nach %Ziel% gespeichert.>>%LOGFILE% 
242.
if %InfoAdmin% NEQ 2 echo ! - %Date% - %Time%: Download beendet: %Zeile% wurde nach "%Ziel%" gespeichert.>>%Temp%\IA.mail 
243.
del "%neu%" 
244.
goto :eof 
245.
 
246.
:InfoAdmin 
247.
if %InfoAdmin% EQU 1 goto IAJa 
248.
if %InfoAdmin% EQU 2 goto end 
249.
if %InfoAdmin% EQU 3 goto Quest 
250.
 
251.
:IAJa 
252.
echo ! - %Date% - %Time%: InfoMail wird automatisch an den Admin geschickt.>>%LOGFILE% 
253.
@%Tools%blat "%Temp%\IA.mail" -from %User% -U %MyMail% -pw %MyMailPW% -to %AdminMail% -subject "%User% hat Downloads fertig" >NUL 
254.
del "%Temp%\IA.mail" 
255.
 goto end 
256.
 
257.
:Quest 
258.
set M="%temp%\"Meldung.vbs 
259.
>%M% echo Set args=WScript.Arguments:WScript.Quit MsgBox(args(0),args(1),args(2)) 
260.
cscript //nologo %M% "Soll dem Admin eine InfoMail geschickt werden?" 3 "Entscheidung" 
261.
if errorlevel 7 echo OK & goto end 
262.
if errorlevel 6 echo OK & goto ms 
263.
if errorlevel 2 echo OK & goto Abbruch 
264.
 
265.
:ms 
266.
echo ! - %Date% - %Time%: InfoMail wird nach Abfrage an den Admin geschickt.>>%LOGFILE% 
267.
@%Tools%blat "%Temp%\IA.mail" -from %User% -U %MyMail% -pw %MyMailPW% -to %AdminMail% -subject "%User% hat Downloads fertig" >NUL 
268.
del "%Temp%\IA.mail" 
269.
goto end 
270.
 
271.
:SYNTAX 
272.
color A0 
273.
cls 
274.
echo Hilfe zu LoadDown %ProgVers% 
275.
echo ________________________ 
276.
echo. 
277.
echo Syntax: 
278.
echo Der Parameter "?" + "-?" oder "/?" - Zeigt diese Hilfe 
279.
echo Der Parameter "Auswahl" oder "/Auswahl" zeigt eine Liste aktueller Downloads, die Ausgewaehlt werden koennen 
280.
echo. 
281.
echo Weitere Parameter sind: "*.*", "*.Rar" oder "Datei.Name" 
282.
echo Beispiel 1: LoaDown107.exe /Auswahl 
283.
echo Beispiel 2: LoaDown107.exe *.* C:\Downloads 
284.
echo Beispiel 3: LoaDown107.exe *.Rar C:\Downloads 
285.
echo Beispiel 4: LoaDown107.exe DateiName.Zip Q:\Laden 
286.
echo. 
287.
echo Ausserdem kann beim ersten Start ab Version %ProgVers% eine Configdatei mit einigen Parametern erstellt werden. 
288.
echo In der Config.Ini duerfen Sie die ersten 6 Zeilen NICHT veraendern. 
289.
echo In Zeile 7 wird der Standartparameter fuer die Dateiauswahl festgehalten z.B. Auswahl oder *.* 
290.
echo In Zeile 8 wird der Zielort definiert, wo die geladenen Daten gespeichert werden sollen. 
291.
echo. 
292.
echo So, und nun viel Spass und Erfolg. 
293.
echo Weitere neue Versionen kommen sicherlich in kuerze. 
294.
 
295.
goto Abbruch 
296.
 
297.
:Abbruch 
298.
Pause 
299.
cls 
300.
set M=%temp%\Meldung.vbs 
301.
>%M% echo Set args=WScript.Arguments:WScript.Quit MsgBox(args(0),args(1),args(2)) 
302.
cscript //nologo %M% "Programm wurde abgebrochen.! Schade.." 0 "Entscheidung" 
303.
if errorlevel 1 goto end 
304.
 
305.
set M=%temp%\Meldung.vbs 
306.
Pause 
307.
>%M% echo Set args=WScript.Arguments:WScript.Quit MsgBox(args(0),args(1),args(2)) 
308.
cscript //nologo %M% "Download von %Zeile% ist fertig.Danke fr die Benutzung des Scripts. !" 0 "Entscheidung" 
309.
if errorlevel 1 echo xxx >NUL 
310.
echo ! - %Date% - %Time%: Programmende >>%LOGFILE% 
311.
goto end 
312.
 
313.
:: // Hier wird der Server ausgeführt //:: 
314.
:: ------------------------------------------------- 
315.
:: ------------------------------------------------- 
316.
:: ------------------------------------------------- 
317.
:: ------------------------------------------------- 
318.
:: ------------------------------------------------- 
319.
:: ------------------------------------------------- 
320.
:: ------------------------------------------------- 
321.
:SERVER 
322.
echo ! - %Date% - %Time%: %ProgName% %Progvers% wurde im Servermodus gestartet >>%LOGFILE% 
323.
echo ! - %Date% - %Time%: Jetzt wird sauber gemacht 
324.
echo ! - %Date% - %Time%: Verschiebe Files „lter als %MOVEFILE% Tage nach %Oldfiles% 
325.
echo ! - %Date% - %Time%: Jetzt wird sauber gemacht >%SLOGFILE% 
326.
echo ! - %Date% - %Time%: Verschiebe Files „lter als %MOVEFILE% Tage nach %Oldfiles% >>%SLOGFILE% 
327.
echo wscript.sleep 4000>%temp%\sleep.vbs 
328.
  		wscript %temp%\sleep.vbs 
329.
 
330.
cls 
331.
 
332.
"%Tools%delAge32" %Upload%\*.* %Movefile% /move "%OLDFILES%" 
333.
echo "%Tools%delAge32" %Upload%\*.* %Movefile% /move "%OLDFILES%" 
334.
 
335.
 color %FarbeS% 
336.
cls 
337.
:: // Hier wird geprüft, ob die Server.Ini vorhanden ist. //:: 
338.
if not exist "%ProgPath%"SConfig.ini goto SCmakeini 
339.
If not exist "%ProgPath%"SConfig.ini set Farbe=1F 
340.
 
341.
if exist "%ProgPath%"SConfig.ini FOR /F "eol=;" %%i in ('find "12=" SConfig.ini') do set Farbe=%%i 
342.
 
343.
 
344.
If not exist SConfig.Ini set SLOGFILE="%ProgPath%"LoaDown3.0-Server.Log 
345.
if exist SConfig.ini FOR /F "eol=;" %%i in ('find "09=" SConfig.ini') do set SLOGFILE=%%i 
346.
echo ! -_________________________________________________________ >>%SLOGFILE% 
347.
echo ! - %Date% - %Time%: %Programm% gestartet >>%SLOGFILE% 
348.
echo ! - %Date% - %Time%: %Programm% gestartet 
349.
 
350.
:SCmakeini 
351.
if exist SCONFIG.INI goto USERSCINI 
352.
if exist NoSCINI.000 del NoSCINI.000 
353.
 
354.
set M=%temp%\Meldung.vbs 
355.
>%M% echo Set args=WScript.Arguments:WScript.Quit MsgBox(args(0),args(1),args(2)) 
356.
cscript //nologo %M% "Soll eine ServerConfig.Ini angelegt werden?" 3 "Entscheidung" 
357.
if errorlevel 7 echo Keine .Ini Anlegen. Wenn doch die Datei NoSCINI.000 Loeschen.>NoSCINI.000. & goto :abfrage 
358.
if errorlevel 6 goto writeSCini 
359.
if errorlevel 2 echo Abbruch ... & goto Abbruch 
360.
goto SetSCStandart 
361.
 
362.
:WRITESCINI 
363.
If not exist SConfig.Ini set SLOGFILE="%ProgPath%"LoaDown3.0-Server.Log 
364.
if exist SConfig.ini FOR /F "eol=;" %%i in ('find "09=" SConfig.ini') do set SLOGFILE=%%i 
365.
echo ! - %Date% - %Time%: Server Ini wird geschrieben >>%LOGFILE% 
366.
echo ! - %Date% - %Time%: Server Ini wird geschrieben 
367.
 
368.
IF Not EXIST SConfig.ini Set SLOGFILE="%ProgPath%"LoaDown3.0-Server.Log 
369.
if exist SConfig.ini FOR /F "eol=;" %%i in ('find "9=" SConfig.ini') do set SLogfile=%%i 
370.
echo ! - %Date% - %Time%: SConfig.Ini wurde erzeugt >>%LOGFILE% 
371.
echo ! - %Date% - %Time%: %Progname% %Progvers% Server gestartet  >>%LOGFILE% 
372.
echo Speichern Sie Ihre aenderungen und beenden Sie dann bitte Notepad 
373.
echo __________________________________________________________________________ 
374.
echo. 
375.
 
376.
IF Not EXIST SConfig.ini Set SLOGFILE=SreverLoaDown%Progvers%.Log 
377.
if exist SConfig.ini FOR /F "eol=;" %%i in ('find "9=" SConfig.ini') do set SLogfile=%%i 
378.
echo ! - %Date% - %Time%: SConfig.Ini wurde erzeugt >>%SLOGFILE% 
379.
echo ! - %Date% - %Time%: %Progname% %Progvers% Server gestartet  >>%SLOGFILE% 
380.
echo Speichern Sie Ihre aenderungen und beenden Sie dann bitte Notepad 
381.
echo __________________________________________________________________________ 
382.
echo. 
383.
echo 1: Bitte passen Sie die angegebenen Daten nach Ihren Beduerfnissen an. >Sconfig.ini 
384.
echo 2: Sie koennen alternativ auch die SConfig.ini loeschen. Dann werden Sie >>Sconfig.ini 
385.
echo 3: jedes mal nach den Informationen gefragt. (Zu viel Arbeit) >>Sconfig.ini 
386.
echo.4: Bitte unbedingt die Zeilenzahl (z.B. 07= oder 08= stehen lassen) >>Sconfig.ini 
387.
echo 5: ______________ die ersten 6 Zeilen bitte nicht loeschen ______________ >>Sconfig.ini 
388.
echo 6:  >>SConfig.ini 
389.
echo Quelle.txt			07=; Quelldatei aus der die Ladeverzeichnisse gelesen werden.>>Sconfig.ini	 
390.
echo H:\!Testfuer107\		08=; Pfad wo die fertigen Daten hinverschoben werden sollen.>>Sconfig.ini 
391.
echo LoaDown3.0-Server.Log	09=; Wie soll das Logfile heißen? Mit oder ohne Pfadangabe>>Sconfig.ini 
392.
echo 500000			10=; z.B. 30200 = 30 KB	>>Sconfig.ini>>Sconfig.ini 
393.
echo 1				11=; 1 = Kopieren oder 2 = Verschieben - Tragen Sie nur die Zahl ein>>Sconfig.ini 
394.
echo 4E				12=; z.B. 1F testen mit CMD \ Color /?>>Sconfig.ini 
395.
echo DL.log			13=; MailFile: Wie soll die Datei heißen, die an "Downloader" Versandt wird?>>Sconfig.ini 
396.
echo 3				14=; Tage, nach denen die Files vom DL Verzeichnis in ein "Old" Verzeichnis verschoben werden>>Sconfig.ini 
397.
echo 7				15=; Tage, nach denen die Files aus dem "OLD" Verzeichnis endgültig gelöscht werden>>Sconfig.ini 
398.
echo UserMail.Lst		16=; Textdatei mit E-Mailadressen von Usern die über neue Downloads informiert werden sollen.>>Sconfig.ini 
399.
echo H:\!Testfuer107\OLD\	17=; Pfad wo "alte" Files nach x Tagen hinverschoben werden sollen>>Sconfig.ini 
400.
echo Ihre@EMailAdresse.de	18=; Ihre E-Mailadresse>>Sconfig.ini 
401.
echo SMTPLogin-Name		19=; SMTP Loginname (oft die E-Mailadresse)>>Sconfig.ini 
402.
echo SMTP-Server.de		20=; Ihr SMTP Server>>Sconfig.ini 
403.
echo gEhEiM			21=; Ihr Mail Passwort>>Sconfig.ini 
404.
echo Neue_Downloads_verfügbar	22=; Subject der Benachrichtigungs E-Mail. Bitte keine leerzeichen verwenden>>Sconfig.ini 
405.
echo DataType.ini		23=; Dateiname die Dateitypen (später mehr *.exe *.rar *.zip usw...)>>Sconfig.ini 
406.
echo LangerHans			24=; Ihr Admin Pseudonym)>>Sconfig.ini 
407.
 
408.
%Bearbeite% SConfig.ini 
409.
 
410.
goto USERSCINI 
411.
 
412.
:USERSCINI 
413.
echo ! - %Date% - %Time%: SConfig.Ini wird ausgelesen >>%SLOGFILE% 
414.
echo ! - %Date% - %Time%: SConfig.Ini wird ausgelesen 
415.
FOR /F "eol=;" %%i in ('find "07=" SConfig.ini') do set Quelle=%%i 
416.
FOR /F "eol=;" %%i in ('find "08=" SConfig.ini') do set UPLOAD=%%i 
417.
FOR /F "eol=;" %%i in ('find "09=" SConfig.ini') do set SLOGFILE=%%i 
418.
FOR /F "eol=;" %%i in ('find "10=" SConfig.ini') do set SLogSize=%%i 
419.
FOR /F "eol=;" %%i in ('find "11=" SConfig.ini') do set Type=%%i 
420.
FOR /F "eol=;" %%i in ('find "12=" SConfig.ini') do set Farbe=%%i 
421.
FOR /F "eol=;" %%i in ('find "13=" SConfig.ini') do set MailFile=%%i 
422.
FOR /F "eol=;" %%i in ('find "14=" SConfig.ini') do set MoveFile=%%i 
423.
FOR /F "eol=;" %%i in ('find "15=" SConfig.ini') do set KillFile=%%i 
424.
FOR /F "eol=;" %%i in ('find "16=" SConfig.ini') do set MailingLST=%%i 
425.
FOR /F "eol=;" %%i in ('find "17=" SConfig.ini') do set OldFiles=%%i 
426.
FOR /F "eol=;" %%i in ('find "18=" SConfig.ini') do set MyMail=%%i 
427.
FOR /F "eol=;" %%i in ('find "19=" SConfig.ini') do set MySMTPLogin=%%i 
428.
FOR /F "eol=;" %%i in ('find "20=" SConfig.ini') do set MyMailSrv=%%i 
429.
FOR /F "eol=;" %%i in ('find "21=" SConfig.ini') do set MyMailPW=%%i 
430.
FOR /F "eol=;" %%i in ('find "22=" SConfig.ini') do set Subject=%%i 
431.
FOR /F "eol=;" %%i in ('find "23=" SConfig.ini') do set DataType=%%i 
432.
FOR /F "eol=;" %%i in ('find "24=" SConfig.ini') do set Admin=%%i 
433.
FOR /F "eol=;" %%i in ('find "25=" SConfig.ini') do set FBal=%%i 
434.
set "SLOG="%ProgPath%"%SLOGFILE%" 
435.
set "%SLOGFILE%="%ProgPath%"%SLOG%" 
436.
color %Farbe% 
437.
 
438.
If not exist SConfig.Ini set SLOGFILE="%ProgPath%"LoaDown3.0-Server.Log 
439.
if exist SConfig.ini FOR /F "eol=;" %%i in ('find "09=" SConfig.ini') do set SLOGFILE=%%i 
440.
 
441.
if not exist %Quelle% goto WriteQuelle 
442.
goto DoMove 
443.
 
444.
:WriteQuelle 
445.
 
446.
echo ! - %Date% - %Time%: Keine Quellen vorhanden. Quelldatei wird erstellt >>%SLOGFILE% 
447.
echo ! - %Date% - %Time%: Keine Quellen vorhanden. Quelldatei wird erstellt 
448.
FOR /F "eol=;" %%i in ('find "07=" SConfig.ini') do set Quelle=%%i 
449.
if exist %Quelle% goto DoMove 
450.
 
451.
if not exist %Quelle%  echo 1: Bitte passen Sie die angegebenen Daten nach Ihren Beduerfnissen an. >>%Quelle% 
452.
echo 2: Hier dürfen Sie in jeder Zeile nur einen Pfad eintragen, aus dem Daten >>%Quelle% 
453.
echo 3: ausgelesen und in ein neues Verzeichnis verschoben werden sollen. >>%Quelle% 
454.
echo.4: Vergessen sie Bitte den abschließenden "\" nicht. (z.B. Ihre Fertigen Downloads) >>%Quelle% 
455.
echo.5: Bitte unbedingt die Zeilenzahl (z.B. 08= oder 09= stehen lassen) >>%Quelle% 
456.
echo 6: ______________ die ersten 6 Zeilen bitte nicht loeschen ______________ >>%Quelle% 
457.
echo 7:  >>%Quelle% 
458.
echo C:\Downloads\	08=;Quelle aus der die Daten kopiert / verschoben werden sollen. >>%Quelle% 
459.
echo D:\Meine_Daten\	09=;s.O. oder Wenn Slot nicht benutzt wird das Wort "leer" eintragen.>>%Quelle%	 
460.
echo E:\Beruf\Geheim\	10=;s.O. oder Wenn Slot nicht benutzt wird das Wort "leer" eintragen.>>%Quelle%	 
461.
echo leer		11=;s.O. oder Wenn Slot nicht benutzt wird das Wort "leer" eintragen.>>%Quelle%	 
462.
echo leer 		12=;Wenn Slot nicht benutzt wird das Wort "leer" eintragen.>>%Quelle%	 
463.
echo leer		13=;Wenn Slot nicht benutzt wird das Wort "leer" eintragen.>>%Quelle%	 
464.
echo leer		14=;Wenn Slot nicht benutzt wird das Wort "leer" eintragen.>>%Quelle%		 
465.
echo leer		15=;Wenn Slot nicht benutzt wird das Wort "leer" eintragen.>>%Quelle%		 
466.
echo leer		16=;Wenn Slot nicht benutzt wird das Wort "leer" eintragen.>>%Quelle%		 
467.
echo leer		17=;Wenn Slot nicht benutzt wird das Wort "leer" eintragen.>>%Quelle%		 
468.
%Bearbeite% %Quelle% 
469.
 
470.
rem USERSCINI 
471.
if not exist "%ProgPath%"SConfig.ini set SLogSize=500000 
472.
FOR /F "eol=;" %%i in ('find "10=" SConfig.ini') do set SLogSize=%%i 
473.
 
474.
:: Hier wird das Logfile gekürzt 
475.
for %%i in (*.Log) do if %%~zi geq %SLogSize% del %SLOGFILE% 
476.
goto DoMove 
477.
 
478.
:DoMove 
479.
 
480.
echo ! - %Date% - %Time%: %Quelle% wird ausgelesen >>%SLOGFILE% 
481.
echo ! - %Date% - %Time%: %Quelle% wird ausgelesen 
482.
 
483.
FOR /F "eol=;" %%i in ('find "08=" %Quelle%') do set Target1=%%i 
484.
FOR /F "eol=;" %%i in ('find "09=" %Quelle%') do set Target2=%%i 
485.
FOR /F "eol=;" %%i in ('find "10=" %Quelle%') do set Target3=%%i 
486.
FOR /F "eol=;" %%i in ('find "11=" %Quelle%') do set Target4=%%i 
487.
FOR /F "eol=;" %%i in ('find "12=" %Quelle%') do set Target5=%%i 
488.
FOR /F "eol=;" %%i in ('find "13=" %Quelle%') do set Target6=%%i 
489.
FOR /F "eol=;" %%i in ('find "14=" %Quelle%') do set Target7=%%i 
490.
FOR /F "eol=;" %%i in ('find "15=" %Quelle%') do set Target8=%%i 
491.
FOR /F "eol=;" %%i in ('find "16=" %Quelle%') do set Target9=%%i 
492.
FOR /F "eol=;" %%i in ('find "17=" %Quelle%') do set Target10=%%i 
493.
 
494.
:PacknGo 
495.
 
496.
Set Info="%temp%\list.txt" 
497.
FOR /F "eol=;" %%i in ('find "08=" %Quelle%') do set StartDIR=%%i 
498.
 
499.
	if /i #%Target1%# neq #leer# DIR /B /AD %Target1%>%info%  
500.
	for /f "usebackq delims=" %%i in (%info%) do call :ProcessLine-!UT "%%i" 
501.
 
502.
goto MailSend 
503.
	 
504.
:PROCESSLINE-!UT 
505.
 set "Drive=%Startdir:~,2%" 
506.
 %Drive% 
507.
 cd %StartDIR% 
508.
 set Ordner=%~1 
509.
 cd "%Ordner%" 
510.
 
511.
 
512.
 
513.
  	if exist *.!UT (  
514.
  	 cd %startdir%   	 
515.
 	 goto :eof) 
516.
 
517.
 	 "%ProgramFiles%\7-Zip\7z.exe" a -tzip -mx0 -r "%Ordner%.zip"  
518.
          echo ! - %Date% - %Time%: %Ordner%.zip erstellt.>>%SLOG% 
519.
          Robocopy "%startdir%%ordner%"  "%Upload%" "%Ordner%.*" %RCPYParam% 
520.
 
521.
          echo 1>%Startdir%%Ordner%\!Erledigt.DoNot.!UT 
522.
          echo 1 %Startdir%%Ordner%\!Erledigt.DoNot.!UT 
523.
          echo ! - %Date% - %Time%: %Ordner%.zip nach %Upload% verschoben.>>%SLOG% 
524.
 
525.
 
526.
%ProgDrive% 
527.
cd "%ProgPath%" 
528.
		"%tools%NewRename.exe" "%Upload%\%Ordner%.zip" 
529.
		del %info%	 
530.
		Echo Neue Daten verfuegbar>""%ProgPath%"NewFile.Dat" 
531.
		goto :eof 
532.
 	 
533.
:MailSend 
534.
%ProgDrive% 
535.
cd "%ProgPath%" 
536.
echo ! - %Date% - %Time%: MailSent gestartet.>>%SLOG% 
537.
cls 
538.
if not exist ""%ProgPath%"NewFile.Dat" goto Ordnung 
539.
if exist ""%ProgPath%"NewFile.Dat" del ""%ProgPath%"NewFile.Dat" 
540.
set "InFile=%Upload%\!DL.Log" 
541.
set "OutFile=%Upload%\DL.Log" 
542.
echo ! - %Date% - %Time%: teste auf Content.txt >>%SLOG% 
543.
if exist ""%ProgPath%"Content.txt" goto MailIt 
544.
 
545.
Echo Hallo, >""%ProgPath%"Content.txt" 
546.
echo.  >>""%ProgPath%"Content.txt" 
547.
Echo Es liegen neue Downloads auf dem Server.>>""%ProgPath%"Content.txt" 
548.
Echo Bei Interesse bitte schnellst moeglich ziehen.>>""%ProgPath%"Content.txt" 
549.
Echo Nach %MOVEFILE% Tagen werden die Daten automatisch nach %OLDFILES% verschoben.>>""%ProgPath%"Content.txt" 
550.
Echo Nach %KILLFILE% Tagen werden Sie automatisch gelöscht. >>""%ProgPath%"Content.txt" 
551.
Echo Benutze bitte die dir bekannten FTP Zugangsdaten oder benutze LoaDown 3.0.0>>""%ProgPath%"Content.txt" 
552.
Echo bzw. frag mich danach.>>""%ProgPath%"Content.txt" 
553.
Echo Zur Zeit liegen folgende Dateien bereit:>>""%ProgPath%"Content.txt" 
554.
Echo. >>""%ProgPath%"Content.txt" 
555.
Echo %Admin% >>""%ProgPath%"Content.txt" 
556.
Echo. >>""%ProgPath%"Content.txt" 
557.
Echo ____________________________________________________________>>""%ProgPath%"Content.txt" 
558.
echo.  >>""%ProgPath%"Content.txt" 
559.
echo  Folgende Files liegen zur Zeit bereit:>>""%ProgPath%"Content.txt" 
560.
Echo ____________________________________________________________>>""%ProgPath%"Content.txt" 
561.
goto MailIt 
562.
 
563.
:MailIT 
564.
if exist ""%ProgPath%"%Mailinglst%" goto MailIt2 
565.
echo ! - %Date% - %Time%: Mailingliste wird erstellt. >>%SLOG% 
566.
if not exist ""%ProgPath%"%Mailinglst%" echo 1: Du musst die ersten 5 Zeilen aus dieser Datei loeschen!!!.>"%ProgPath%"%Mailinglst% 
567.
echo 2: In diese Datei (%Mailinglst%) schreiben Sie bitte alle E-Mailempfänger,>>"%ProgPath%"%Mailinglst% 
568.
echo 3: die Sie informieren möchten, wenn neue Dateien zur verfügung stehen >>"%ProgPath%"%Mailinglst% 
569.
echo 4: Sie können beliebig viele Empfänger per Komma getrennt eintragen. >>"%ProgPath%"%Mailinglst% 
570.
Echo 5: ____________________________________________________________>>"%ProgPath%"%Mailinglst% 
571.
Echo info@Ein-FTPServer.de,ich@hier.de,test@user.de,Bill@gates.com >>"%ProgPath%"%Mailinglst% 
572.
%Bearbeite% "%ProgPath%"%Mailinglst% 
573.
 
574.
 
575.
:MailIt2 
576.
%ProgDrive% 
577.
cd "%ProgPath%" 
578.
::DL.Log erstellen 
579.
set "DLP=%Upload%\" 
580.
if exist %DLP%dl.log del %DLP%dl.log 
581.
dir "%dlp%"/B >"%dlp%!DL.Log" 
582.
for /f "tokens=1* delims=:" %%i in ('findstr /n $ "%InFile%"^|findstr /b "1:"') do findstr /v /b /c:"%%j" "%InFile%">"%DLP%DL.Log" 
583.
type "%DLP%DL.Log">>""%ProgPath%"Content.txt" 
584.
setlocal 
585.
set "InputFile="%ProgPath%"CNT.txt" 
586.
set "OutputFile="%ProgPath%"content.txt" 
587.
 
588.
"%tools%\diskuse.exe" /d:w /w /t /v %Upload% >"%InputFile%" 
589.
 
590.
 
591.
(echo. 
592.
 echo. 
593.
 
594.
 echo Datum       Dateiname                                          Groesse in Bytes 
595.
 echo ------------------------------------------------------------------------------- 
596.
 
597.
 
598.
 for /f "skip=8 tokens=2* delims=:" %%a in ('findstr "^" "%InputFile%"') do ( 
599.
   for /f "tokens=1" %%i in ("%%a") do ( 
600.
     set "String=%%i" 
601.
     call :ConcatString 12 0 
602.
603.
 
604.
   for /f "tokens=*" %%i in ("%%b") do ( 
605.
     set "String=%%~nxi" 
606.
     call :ConcatString 51 0 
607.
608.
 
609.
   for /f "tokens=*" %%i in ("%%b") do ( 
610.
     set "String=%%~zi" 
611.
     call :ConcatString 16 1 
612.
613.
 
614.
   call :OutputLine 
615.
616.
) >>"%OutputFile%" 
617.
 
618.
del %InFile% 
619.
del %Inputfile% 
620.
 
621.
echo ! - %Date% - %Time%: Mailtext wird erstellt >>%SLOG% 
622.
echo ! - %Date% - %Time%: InfoMail wird Versandt >>%SLOG% 
623.
echo ! - InfoMail wird Versandt 
624.
echo ! - %Date% - %Time%: Untersuche %Upload%>>%SLOG% 
625.
echo ! - Untersuche %Upload%\ 
626.
echo %Upload% >%Temp%\LW.txt 
627.
FOR /F "tokens=1 delims=\ " %%i in (%Temp%\lw.txt) do set LW=%%i 
628.
%ProgLW% 
629.
cd "%ProgPath%" 
630.
 
631.
"%tools%blat.exe" ""%ProgPath%"Content.txt" -from %MyMail% -U %MySMTPLogin% -pw %MyMailPW% -to %MyMail% -bf "%ProgPath%"%Mailinglst% -subject "%Subject%"? 
632.
echo Mail verschickt! 
633.
 
634.
if errorlevel=0 echo ! - %Date% - %Time%: Mail wurde erfolgreich versandt >>%SLOG% 
635.
echo wscript.sleep 5000>%temp%\sleep.vbs 
636.
		wscript %temp%\sleep.vbs 
637.
del ""%ProgPath%"Content.txt" 
638.
Echo if exist ""%ProgPath%"\%Mailinglst% goto Ordnung 
639.
goto Ordnung 
640.
 
641.
 
642.
:Ordnung 
643.
Echo Ordnung 
644.
cd "%ProgPath%" 
645.
del %Outputfile% 
646.
 
647.
echo ! - %Date% - %Time%: Loesche Files „lter als %KillFile% Tage aus %Oldfiles% >>%SLOG% 
648.
echo ! - %Date% - %Time%: Folgende Files wurden geloescht >>%SLOG% 
649.
 
650.
"%tools%\delAge32" %Oldfiles%\*.* %Killfile% 
651.
if exist ""%ProgPath%"\NewFile.Dat". ( 
652.
 if exist ""%ProgPath%"\NewFile.Dat" del ""%ProgPath%"\NewFile.Dat" 
653.
 if exist ""%ProgPath%"Content.txt" del ""%ProgPath%"Content.txt" 
654.
 
655.
goto end 
656.
) ELSE ( 
657.
goto end2 
658.
659.
 
660.
:end2 
661.
echo ! - %Date% - %Time%: Keine neuen Files gefunden >>%SLOG% 
662.
echo. 
663.
echo Keine Files zum verschieben/Loeschen gefunden gefunden. 
664.
echo. 
665.
if exist newfile.dat del newfile.dat 
666.
goto end 
667.
:end 
668.
 
669.
:: // Hier werden abschließende Aufräumarbeiten durchgeführt und das Script beendet. //:: 
670.
:: ------------------------------------------------- 
671.
echo Hier werden abschließende Aufräumarbeiten durchgeführt und das Script beendet 
672.
if exist %alt% del %alt% 
673.
if exist %neu% del %neu% 
674.
if exist "%temp%\%ServerFile%" del /Q /F "%temp%\%ServerFile%" 
675.
if exist "%temp%\Meldung.vbs" del /Q /F "%temp%\Meldung.vbs" 
676.
 
677.
echo ! - %Date% - %Time%: Programmende >>%LOGFILE% 
678.
cls 
679.
echo ! - %Date% - %Time%: Durchlauf beendet >>%LOGFILE% 
680.
echo. 
681.
echo. 
682.
echo. 
683.
echo Vielen Dank fr die Benutzung von LoaDown  3.0 
684.
echo Alle Vorg„nge sind beendet 
685.
echo Bei Anregungen oder Problemen Mail an: LoaDown@Ein-FTPServer.de 
686.
echo. 
687.
echo. 
688.
echo. 
689.
echo wscript.sleep 4000>%temp%\sleep.vbs 
690.
 		wscript %temp%\sleep.vbs 
691.
 
692.
:: HIER WIRD DAS SCRIPT BEENDET !! 
693.
 
694.
Exit /b 
695.
 
696.
:ConcatString 
697.
  >"%TEMP%\strlen.txt" <NUL (set /p "=<%String%"&echo.&set /p "=<"&echo.) 
698.
  for /f "delims=:" %%l in ('findstr /o /b "<" "%TEMP%\strlen.txt"') do set /a "nSpaces=%1-(%%l-3)" 
699.
  del "%TEMP%\strlen.txt" 
700.
 
701.
  setlocal enabledelayedexpansion 
702.
  set "Space=" 
703.
  for /l %%z in (1,1,%nSpaces%) do set "Space=!Space! " 
704.
  endlocal & set "Space=%Space%" 
705.
 
706.
  if "%2" equ "0" set "Line=%Line%%String%%Space%" 
707.
  if "%2" equ "1" set "Line=%Line%%Space%%String%" 
708.
Exit /b 
709.
 
710.
:OutputLine 
711.
  for %%s in ("%Line%") do echo %%~s 
712.
  set "Line=" 
713.
 
714.
Exit /b 
715.
 
716.
 
717.
 
718.
 
Bitte warten ..
Mitglied: Biber
18.06.2011 um 20:55 Uhr
Wow, CCED,

vielen Dank auch dir für deine Mühen!

Vorhin hatte ich es zwischendurch schon bereut, meinen OffTopic-Kommentar hier abgestellt zu haben, weil sich Friemler wohl ein bisschen an den Ei^H^H an der Ehre gepackt fühlte,

Jetzt allerdings, wenn ich überlege, dass der Beitrag ohne meinen Zwischenruf wohl um 14:40h beendet gewesen wäre...

--> So gefällt es mir wesentlich besser.

Ich werde eine entsprechende Bewertung vergeben.

Schönes Wochenende auch dir
Biber

P.S. Wochenendskripter wie du sind hier auf Herzlichste willkommen.
Bitte warten ..
Mitglied: cced-de
18.06.2011 um 21:01 Uhr
Danke und auch euch alles ein schönes Wochenende!!

Aber einen Grünen Haken sehe ich leider nirgends!! Sorry
Bitte warten ..
Mitglied: Friemler
18.06.2011 um 21:43 Uhr
Hallo CCED,

auch von mir: Respect!

Ein Script von ca. 700 Zeilen zu schreiben und dabei den Überblick über die verschiedenen Ablaufpfade zu behalten ist schon eine reife Leistung für einen "Wochenendscripter". Du benutzt auch öfter fortgeschrittenere Techniken (z.B. FOR-Schleifen, Inline-VBScript). Auch wenn es da noch die eine oder andere Möglichkeit zur Optimierung gäbe - das sind eher Kleinigkeiten, die der Erwähnung nicht wirklich Wert sind oder zwar die Anzahl der Zeilen verringern aber nicht unbedingt die Verständlichkeit erhöhen würden.

Und das wichtigste ist: Deine Frage war für mich die größte Herausforderung hier im Forumsbereich "Batch & Shell" in den letzten zwei bis drei Wochen, deshalb werde ich (zum ersten mal überhaupt) auch eine entsprechende Bewertung vergeben.

Den "grünen Haken" hat wohl Biber schon gesetzt, jedenfalls ist er vorhanden. Um das selbst zu erledigen, musst Du unter Deinem Beitrag auf "Bearbeiten" klicken, bis ans Ende der Seite scrollen und den Haken bei "Diese Frage gilt als gelöst" setzen.


@Biber:
Auch wenn es evtl. anders rübergekommen ist - ich war zu keinem Zeitpunkt irgendwie ungehalten bzgl. Deines Kommentars, da braucht Dir nichts leid tun.



Schönes WE an alle
Friemler
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch ausgabe zeilenweise stat spaltenweise ausgeben (4)

Frage von sugram zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch (Win7): Kombinierte Ausgabe mit echo? (1)

Frage von Ben.Blake.79 zum Thema Batch & Shell ...

Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...