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, 4214 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Mehrere Dateien mit laufender Nummer automatisch erstellen (5)

Frage von anko123 zum Thema Batch & Shell ...

Microsoft
Pop-Up Dialog in Batch erstellen (5)

Frage von batchx zum Thema Microsoft ...

Windows Server
gelöst Automatisch erstellen von Ordner (9)

Frage von MeisterFuchs zum Thema Windows Server ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
NTFS und die Defragmentierung (26)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Zwei Subnetze mit je eigenem Router und Internetzugang verbinden (17)

Frage von hannsgmaulwurf zum Thema LAN, WAN, Wireless ...

Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...