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

Dateien erstellen

Frage Entwicklung Batch & Shell

Mitglied: powl89

powl89 (Level 1) - Jetzt verbinden

29.10.2008, aktualisiert 31.10.2008, 4198 Aufrufe, 7 Kommentare

Hallo zusammen,

ich will eine kleine Konsolenanwendung via Batch schreiben.
Sie soll folgendes erledigen:
Ich hab einen Ordner, in dem diverse *.xml Dateien vorhanden sind.
Diese Anwendung soll jetzt zu jeder *.xml Datei eine *.rdy Datei mit einem identischen Namen erzeugen.

Bisher bin ich soweit:

@echo off & setlocal
for %%i in ("C:\Pfad\*.*") do if not exist "%%i.rdy" echo\>"%%i.rdy"

Funktioniert soweit auch.
Allerdings heißen die Dateien bei mir dann "Dateiname.xml.rdy".
Wie bekomme ich nun das kürzel ".xml" aus dem Namen meiner *.rdy Datei?

Gruß

Paul
Mitglied: powl89
29.10.2008 um 16:05 Uhr
bin jetzt soweit, dass die Datei ohne das .xml erzeugt wird:

@echo off & setlocal
for %%i in ("C:\Pfad\*.*") do for /F "delims=." %%n in ("%%i") do if not exist "%%n.rdy" echo\>"%%n.rdy"


Allerdings ist es doch jetzt der Fall, dass es zu Problemen kommt, sobald mehrere "." in dem Dateinamen enthalten sind oder?
Bitte warten ..
Mitglied: bastla
29.10.2008 um 16:11 Uhr
Hallo powl89 und willkommen im Forum!

Besser wird's so gehen:
01.
@echo off & setlocal 
02.
for %%i in ("C:\Pfad\*.xml") do if not exist "%%~dpni.rdy" echo\>"%%~dpni.rdy"
Mit "for /?" und der nötigen Geduld, bis fast an's Ende zu lesen (oder zumindest zu blättern ), kannst Du das dann hoffentlich nachvollziehen ...

Grüße
bastla

P.S.: Falls Dir die Formatierung meines Code-Beispiels gefallen sollte: http://www.administrator.de/helpsystem/detail.php?idx=20#toc26
Bitte warten ..
Mitglied: powl89
31.10.2008 um 08:40 Uhr
Hey bastla,

das mit dem ~dpni hatte ich zuvor schonmal gesehen, hatte allerdings immer ein "-" statt "~" verwendet
Klappt auf jeden Fall einwandfrei.

Vielleicht könntest du mir aber nochmal kurz erklären was jetzt genau passiert durch das "~dpni" !?
Bin nicht so ganz bewandert was BATCH angeht ;)

Besten Dank !

Gruß
powl
Bitte warten ..
Mitglied: bastla
31.10.2008 um 08:58 Uhr
Hallo powl89!

... was jetzt genau passiert durch das "~dpni" !?
... steht, wie erwähnt, in der Hilfe zu "for" (in "Einzelteilen" ).

In diesem Fall hier steht bei jedem Schleifendurchlauf in "%%i" der vollständige Pfad einer ".xml"-Datei - dieser Pfad setzt sich zusammen aus:

drive = Laufwerk = "C:"
path = Pfad = "\Pfad\"
name = Dateiname = "DerName"
extension = Typ = ".xml"

Mit Ausnahme des Typs (dafür willst Du ja ".rdy" verwenden), wird alles andere benötigt ...

Grüße
bastla
Bitte warten ..
Mitglied: powl89
31.10.2008 um 09:37 Uhr
Hey bastla,

vielen Dank. Das hat mich um einiges weitergebracht.
Eine letzt kleine Frage hätte ich aber noch:

Wofür steht das i ?

Wie gesagt, bin nicht ganz bewandert was BATCH angeht

Gruß
powl
Bitte warten ..
Mitglied: bastla
31.10.2008 um 09:45 Uhr
Hallo powl89!
Wofür steht das i ?
In "for"-Schleifen werden einzelne Buchstaben als Schleifenvariable verwendet, und "i" wird dafür vorwiegend (wie auch in anderen Programmiersprachen) verwendet - der Buchstabe ist aber frei wählbar, daher könnte die Schleife auch lauten:
for %%a in ("C:\Pfad\*.xml") do if not exist "%%~dpna.rdy" echo\>"%%~dpna.rdy"
Der Teil "~dpn" wird dann einfach zwischen "%%" und dem Buchstaben eingefügt.

Grüße
bastla
Bitte warten ..
Mitglied: powl89
31.10.2008 um 09:47 Uhr
Alles klar, so hab ichs mir vorgestellt.
Danke

Ist es evtl. auch möglich, dass die Batchdatei sich den Pfad speichert, in dem sie ausgeführt wird?
Sprich ich führ die Datei auf dem Desktop aus, also sollen da die Dateien gesucht und erzeugt werdne.
Führe ich sie in einem anderen ordner aus, soll dies dort geschehen.
So dass ich also den Pfad nicht manuell angeben muss !?

Gruß
powl

[EDIT]
Habs hinbekommen.
Vielen Dank bastla.
[/EDIT]
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (12)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...