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

Per Batch Programme ausführen und Dateien umbenennen

Mitglied: nexxtt

nexxtt (Level 1) - Jetzt verbinden

22.08.2008, aktualisiert 01.09.2008, 5560 Aufrufe, 5 Kommentare

Hallo,

ich habe folgendes Problem:
Ich will ein Javaprogramm ausführen, dessen Parameter sind 100 html Seiten aus einem Ordner.
Der Java-Aufruf sieht folgendermaßen aus:

java -cp .;c:\programme\aspectj\lib\aspectjrt.jar org.htmlcleaner.CommandLine src=website.htm

Ausgabe dieses Programmes ist IMMER eine Datei namens trace.xml, diese soll dann umbenannt werden in 1.xml bis 100.xml

Ich hab mir also eine Batch-Datei geschrieben, die in einer FOR Schleife das Programm mit allen Webseiten aus einem Ordner aufruft und danach abhängig von einem Zähler die Datei umbenennt. Allerdings klappt es nicht.
Nur die erste Datei wird umbenannt in 1.xml. Der Zähler wird scheinbar nicht richtig hochgesetzt, bleibt immer bei 1 und somit schlägt das umbennen immer fehl. Hat jemand eine Idee, wie es funktionieren könnte?

Das hier ist bis jetzt mein Ansatz:

set i=1
FOR %%f IN (HTMLDateien\*.htm) DO (java -cp .;c:\programme\aspectj\lib\aspectjrt.jar org.htmlcleaner.CommandLine src=%%f
ren trace.xml %i%.xml
set /A i=%i%+1)

Danke schonmal
Mitglied: bastla
22.08.2008 um 08:48 Uhr
Hallo nexxtt und willkommen im Forum!

So sollte es gehen:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set i=1 
03.
FOR %%f IN (HTMLDateien\*.htm) DO ( 
04.
    java -cp .;c:\programme\aspectj\lib\aspectjrt.jar org.htmlcleaner.CommandLine src=%%f 
05.
    ren trace.xml !i!.xml 
06.
    set /A i+=1 
07.
)
Grüße
bastla
Bitte warten ..
Mitglied: nexxtt
22.08.2008 um 15:34 Uhr
Okay, vielen Dank! Das tut so.
Was war denn der Fehler? War es diese verzögerte Variablenbelegung? Ich hab sie eigentlich extra vorher mit cmd /V:OFF abgeschaltet.
Bitte warten ..
Mitglied: bastla
22.08.2008 um 18:13 Uhr
Hallo nexxtt!

War es diese verzögerte Variablenbelegung?
Ja. Ohne "delayedExpansion" wird der Wert von Variablen nur am Beginn einer Schleife ermittelt - Du kannst zwar den Variableninhalt innerhalb der Schleife verändern, aber ohne ausdrücklilche Aufforderung (nämlich die Variablen "verzögert" - also jeweils erst dann, wenn sie gerade benötigt werden - auszuwerten) interessiert das den Interpreter überhaupt nicht.

Grüße
bastla
Bitte warten ..
Mitglied: nexxtt
01.09.2008 um 12:17 Uhr
Hallo, nachdem ich hier schon bei der ersten Frage super Hilfe bekommen habe, würde ich das Script gerne ein wenig ausbauen, stoße aber schon wieder an meine Grenzen bei Batchfiles.

Also ich hab nun dieses Script von bastla, dass mir die 100 xml Files ausgibt und umbenennt von 1 bis 100.

Diese Programm gibt aber nicht nur eine xml Datei aus, sondern in die Konsole wird auch noch was geschrieben. Diese Ausgabe möchte ich in eine Datei umleiten und diese Dateien dann analog zu den xml Dtaien in 1.txt bis 100.txt umbennen.
So dann habe ich mir noch cygwin runtergeladen, wo ein paar Linuxtools dabei sind und so kann ich in der Kommandozeile auch den diff Befehl benutzen.
Beispielsweise liefert der Ausdruck

diff Datei1.txt Datei2.txt

als Ausgabe gar nichts, wenn die Dateien genau identisch sind oder "Files Datei1.txt and Datei2.txt differ", wenn sie sich unterscheiden.

Ich will nun automatisiert mit diesem diff Befehl die Konsolenausgabe gegen Referenzdateien vergleichen.

Folgender Code drückt wohl semantisch aus, was ich gerne haben will, tut aber leider nicht das gewünschte .

[code]

@echo off & setlocal enabledelayedexpansion
set i=0
FOR %%f IN (HTMLDateien\*.htm) DO (
java -cp .;c:\users\roland\programme\aspectj\lib\aspectjrt.jar org.htmlcleaner.CommandLine src=%%f > !i!.txt
ren trace.xml !i!.xml
diff !i!.txt ..\..\original\!i!.txt >> differ.txt
set /A i+=1
)

[/code]

Also was jetzt neu dazukam ist "> !i!.txt" nach dem Javaaufruf um die Ausgabe in ein txt File umzuleiten und neu dazukam die Zeile "diff !i!.txt ..\..\original\!i!.txt >> differ.txt" um das entstandene txt File mit einer Referenz zu vergleichen und die ganze Ausgabe dann an das File differ.txt anzuhängen.
Ideal wäre es natürlich wenn es als neue Zeile angehängt werden würde, aber ich weiß nicht ob das überhaupt machbar ist.

Danke schonmal
Bitte warten ..
Mitglied: bastla
01.09.2008 um 14:10 Uhr
Hallo nexxt!

Für mich sieht Dein Code schon ganz vernünftig aus - soferne die "diff.exe" gefunden werden kann (da ihr Verzeichnis in %path% eingetragen ist bzw sie im aktuellen Ordner liegt), sollte das eigentlich klappen ...

Falls doch nicht, kannst Du zum Debuggen zunächst einmal aus dem "echo off" ein "echo on" machen und so die Befehle (mit aufgelösten Variablen) vor der Ausführung anzeigen lassen. Wenn Du beim Aufruf der Batchdatei noch eine Umleitung der Ausgabe (auch von Kanal 2 = STDERR) hinzufügst, kannst Du diese Ausgaben auch als Textdatei erhalten, zB
01.
DeinBatch.cmd>BatchLog.txt 2>&1
Grüße
bastla

P.S.: In diesem Forum erreichst Du die Formatierung als Code mit <> anstelle von []
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch datei ausführen für einen anderen Rechner

gelöst Frage von TutterBatch & Shell3 Kommentare

Hallo an alle, ich möchte gern einen batchbefehl auf einen Rechner ausführen. Das muss aber ein anderer Anstoßen. Um ...

Windows 10

Mit einer batch Datei etwas in eine andere batch Datei schreiben und ausführen

Frage von RaphaelStockWindows 105 Kommentare

Hey Administratoren!! Ich habe ein Problem: Ich möchte alle 40 sek etwas in eine batch Datei schreiben und ausführen ...

Batch & Shell

Programme beenden Batch Dateien

gelöst Frage von anmelderBatch & Shell3 Kommentare

Manche Programme beenden Batch Dateien. test.bat Wimlib.net Download Wimapply wird ausgeführt und die Echo Zeile nicht mehr ausgeführt. Das ...

Batch & Shell

Batch Datei: PDF Dateien verschieben, umbenennen und löschen

gelöst Frage von F0rcehunterBatch & Shell4 Kommentare

Hallo zusammen, ich versuche mich gerade an einer Batch, die folgende Arbeitsschritte durchführen soll: In dem Ordner "C:\Produktdaten_zur_Uebernahme" befinden ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 19 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 19 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...

LAN, WAN, Wireless
Gigabit-Lan mit zwei 4-adrigen Kabeln?
Frage von ArvedirmerLAN, WAN, Wireless11 Kommentare

Ich habe folgendes Problem: Ich betreue eine kleine Firma die sich im 1.Stock eines Gebäudes befindet. Es existiert ein ...

Router & Routing
Routing Probleme mit Firewall
gelöst Frage von mb1811Router & Routing9 Kommentare

Hallo Zusammen! Ich habe folgende Problematik, wo ich ein wenig Input benötige: Gem. angehängter Skizze habe ich folgenden Stand: ...