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

Mit einer Batchdatei Platzhalter im Pfad setzen

Frage Entwicklung Batch & Shell

Mitglied: poljew

poljew (Level 1) - Jetzt verbinden

16.08.2011 um 11:04 Uhr, 7199 Aufrufe, 7 Kommentare

Hallo Leute,
ich bin neu hier, also entschuldigt bitte, wenn ich die Frage an der falschen Stelle stelle.

Ich versuche gerade eine Batch Datei zu erstellen, die aus einem Ordner in einen anderen eine Datei kopiert:

echo %jahr%-%monat%-%tag%

copy \\srv55\%jahr%-%monat%-%tag%\Test1--123654\Result.txt C:\Temp\Result.xml

Wenn ich es so schreibe wie oben, geht alles, allerdings wird der Ordner Test1 immer neu erstell, das heisst, ich weiss das der Ordner Test1,2 oder3 heisst, der Rest ist variabel.
Z.B. Es gibt dann mehrere Ordner die so heißen können:
Test1--123654
Test2--567890
Test3--187689 u.s.w und in jedem Ordner liegt eine Result.xml.

Ich habe folgendes probiert:

copy \\srv55\%jahr%-%monat%-%tag%\Test1*\Result.txt C:\Temp\Result.xml
geht aber nicht, ich kriege Fehlermeldung, dass der Synthax nicht stimmt.

Wie kann ich das Problem umgehen?

Vielen Dank
Mitglied: Skyemugen
16.08.2011 um 11:08 Uhr
Aloha und willkommen im Forum,

du bist schon im richtigen Bereich

Ich denke, wenn die Anzahl der Stellen immer gleichbleibend ist und es nur einen Test1-Ordner gibt, müsste es sich bereits per
copy \\srv55\%jahr%-%monat%-%tag%\Test1--??????\Result.txt C:\Temp\Result.xml
lösen lassen.

Was mir nur auf den Magen schlägt:
Du hast mehrere Verzeichnisse und kopierst dann einzeln jeweils die Datei?

Wenn man jetzt wüsste, ob dann nicht doch eher eine for-Verarbeitung für alle Verzeichnisse sinnvoller wäre ...

greetz André

edit: Hm, eventuell doch nicht erfolgreich, zwar lässt sich so in ein Verzeichnis schlüpfen bzw. es herausfinden aber wenn eine Datei genutzt wird, läuft das ins Leere
Man könnte also so z.B. per cd /d arbeiten oder pushd aber ich warte mal ab, wie deine Aussage zu einer gesamten Abhandlung lautet.
Bitte warten ..
Mitglied: poljew
16.08.2011 um 11:37 Uhr
Hallo Andre,
danke für die schnelle Antwort, das hat leider nicht funktioniert, ich kriege immer noch diese Fehlermeldung:
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.

Hast du vielleicht noch einen Tip für mich?

P.S. Das mit for Schleife, werde ich auch machen müssen, ich wollte erstmal probieren, ob es überhaupt funktioniert.

Viele Grüße
Paul
Bitte warten ..
Mitglied: Friemler
16.08.2011 um 11:42 Uhr
Hallo poljew,

versuche es mal so:
01.
for /d %%d in ("\\srv55\%jahr%-%monat%-%tag%\Test1--*") do ( 
02.
  copy "%%d\Result.txt" "C:\Temp\%%~nxd-Result.xml" 
03.
)
Um das Problem zu umgehen, dass alle Quelldateien den gleichen Namen haben und sich somit im Zielverzeichnis gegenseitig überschreiben würden, werden sie im Zielverzeichnis als <Quellverzeichnis>-Result.xml gespeichert.

@Skyemugen
Die von Dir vorgeschlagene Lösung mit den ?-Wildcards funktioniert nicht. Wie sollte sie auch, wenn der TO mit * schon keinen Erfolg hatte?

Gruß
Friemler
Bitte warten ..
Mitglied: Skyemugen
16.08.2011 um 11:42 Uhr
Aloha,

ja, das habe ich bereits selbst im edit stehen ...

wäre schön, wenn du auch den Rest des Kommentars lesen würdest ... und darauf eine Aussage gibst ...

greetz André

@Friemler wozu schreib' ich hier eigentlich edits - liest sowieso niemand und ich wollte erst einmal nicht für einen Pfad for-Schleifen bauen, wenn man die nicht evtl. sinnvollerweise für ein Gesamtpaket verwenden könnte aber der TE äußert sich ja nicht dazu und so beließ ich es erst einmal bei meinem Geschriebenen ....
ich hab' heute keine gute Laune, kommt mir nicht mit wie sollte sie auch ...

edit: Ah, er hat ein P.S.: hineineditiert ... dachte, post scriptum kommt post scriptum und nicht hinein *stänker*

P.S:: @Friemler, hättest doch dann gleich nach Test?--* suchen lassen können, wenn ich das EP richtig interpretiere, dann hätte er den Spaß gleich für alle Test-Verzeichnisse
Bitte warten ..
Mitglied: Friemler
16.08.2011 um 11:53 Uhr
Hallo André,

Zitat von Skyemugen:
ich hab' heute keine gute Laune

ist bemerkbar . Another day, another game.

Gruß
Friemler
Bitte warten ..
Mitglied: poljew
16.08.2011 um 11:54 Uhr
Das hat funktioniert,
super vielen Dank an alle!

Gruß
Paul
Bitte warten ..
Mitglied: bastla
16.08.2011 um 12:29 Uhr
Hallo Friemler!

Ich nehme an, Skyemugen meinte
for /d %%d in ("\\srv55\%jahr%-%monat%-%tag%\Test?--*") do (
- was natürlich funktionieren würde (wobei wir weiterhin nicht wirklich wissen, was der TE eigentlich vor hat(te) ) ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(7)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Heiß diskutierte Inhalte
Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Linux
gelöst Google Chrome startet nicht (12)

Frage von Thomas91 zum Thema Linux ...