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

Frage Microsoft Windows Tools

Mitglied: nexxtt

nexxtt (Level 1) - Jetzt verbinden

22.08.2008, aktualisiert 01.09.2008, 5552 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
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 55 MinutenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 5 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 6 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 18 StundenInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Windows Server
Remotesteuerung der Sitzung (Kennung XX) fehlgeschlagen
gelöst Frage von Stefan91Windows Server14 Kommentare

Hallo Zusammen, seit kurzem bekomme ich oben genannte Fehlermeldung, wenn ich versuche eine Remotesitzung über den Taskmanager fernzusteuern (Rechtsklick ...