Mittels Batch Ordner umbenennen und Dateien kopieren
Guten Tag allerseits
Ich bin absoluter Leihe und konnte Dank mehr oder weniger grossen Suche in den Foren bereits einiges selbst erarbeiten stehe aber nun doch noch vor einem letzten kleinen Problem.
Ausgangslage
Unter Windows 7 muss eine Arbeit verrichtet werden bei der Dateien generiert werden, die jeweils in den Ordner "Neuer Ordner" auf dem Desktop eingefügt werden.
Es sind immer die selben Dateitypen aber nicht die selben Dateinamen. 1x eine XML, 1x eine XLSX
Nun musste bis anhin der Ordnername "Neuer Ordner" jeweils manuell angepasst werden (der Ordnername ist variabel korrespondiert jedoch mit dem Namen der XML Datei) und die zwei Dateien manuell in die jeweiligen Ordner auf einem Netzlaufwerk (Pfad bleibt immer identisch) verschoben werden.
Ziel
Ich würde gerne den Mitarbeitenden die diese Aufgabe ausführen müssen ein Batch zur Verfügung stellen, welchen sie auf ihrem Desktop platzieren können und beim auslösen folgendes passiert:
1. "Neuer Ordner" wird automatisch umbenannt mit dem Namen der XML Datei
2. XML Datei wird in den Ordner "XML" auf dem Netzlaufwerk kopiert (WICHTIG nicht verschoben)
3. XLSX Datei wird in den Ordner "XLSX" auf dem Netzlaufwerk kopiert (WICHTIG nicht verschoben)
Aktuelles Resultat (nur Lokal aber da muss ich nur die Pfade anpassen)
Damit habe ich folgendes erreicht
1. im Ordner "Neuer Ordner" wird ein neuer Ordner mit dem Namen der XML Datei generiert
2. die XML Datei wird in die dafür vorgesehenen Ordner kopiert
3. die XLSX Datei wird in den dafür vorgesehenen Ordner kopiert
Also eigentlich schon ziemlich nahe am Ziel nur, dass nicht ein neuer Ordner im "Neuer Ordner" mit dem Namen der XML erstellt werden sollte, sondern der "Neue Ordner" umbenannt werden sollte.
Kann mir womöglich jemand helfen und sagen wo der Fehler liegt?
Vielen Dank schon einmal für eure Unterstützung
Beste Grüsse
Christoph
[Edit Biber] Codeformatierung. [/Edit]
Ich bin absoluter Leihe und konnte Dank mehr oder weniger grossen Suche in den Foren bereits einiges selbst erarbeiten stehe aber nun doch noch vor einem letzten kleinen Problem.
Ausgangslage
Unter Windows 7 muss eine Arbeit verrichtet werden bei der Dateien generiert werden, die jeweils in den Ordner "Neuer Ordner" auf dem Desktop eingefügt werden.
Es sind immer die selben Dateitypen aber nicht die selben Dateinamen. 1x eine XML, 1x eine XLSX
Nun musste bis anhin der Ordnername "Neuer Ordner" jeweils manuell angepasst werden (der Ordnername ist variabel korrespondiert jedoch mit dem Namen der XML Datei) und die zwei Dateien manuell in die jeweiligen Ordner auf einem Netzlaufwerk (Pfad bleibt immer identisch) verschoben werden.
Ziel
Ich würde gerne den Mitarbeitenden die diese Aufgabe ausführen müssen ein Batch zur Verfügung stellen, welchen sie auf ihrem Desktop platzieren können und beim auslösen folgendes passiert:
1. "Neuer Ordner" wird automatisch umbenannt mit dem Namen der XML Datei
2. XML Datei wird in den Ordner "XML" auf dem Netzlaufwerk kopiert (WICHTIG nicht verschoben)
3. XLSX Datei wird in den Ordner "XLSX" auf dem Netzlaufwerk kopiert (WICHTIG nicht verschoben)
Aktuelles Resultat (nur Lokal aber da muss ich nur die Pfade anpassen)
for %%i in (\Desktop\Test\*.xml) do @(md "%%~dpi%%~ni" && move "%%~dpni.*" "%%~dpi%%-ni\")
copy "\Desktop\Test\*.xml" "\\sg1004z-v1\TOLHECH1$\Desktop\Test2\Tedletter files (xml)\"
copy "\Desktop\Test\*.xml" "\\sg1004z-v1\TOLHECH1$\Desktop\Test2\Plannedwork files (xml)\"
copy "\Desktop\Test\*.xls" "\\sg1004z-v1\TOLHECH1$\Desktop\Test2\ISP Info (xls)\"
Damit habe ich folgendes erreicht
1. im Ordner "Neuer Ordner" wird ein neuer Ordner mit dem Namen der XML Datei generiert
2. die XML Datei wird in die dafür vorgesehenen Ordner kopiert
3. die XLSX Datei wird in den dafür vorgesehenen Ordner kopiert
Also eigentlich schon ziemlich nahe am Ziel nur, dass nicht ein neuer Ordner im "Neuer Ordner" mit dem Namen der XML erstellt werden sollte, sondern der "Neue Ordner" umbenannt werden sollte.
Kann mir womöglich jemand helfen und sagen wo der Fehler liegt?
Vielen Dank schon einmal für eure Unterstützung
Beste Grüsse
Christoph
[Edit Biber] Codeformatierung. [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 05.05.2015 um 09:38:37 Uhr
Mittels Batch Ordner umbennen und Dateien kopieren
Set /a rgc+=1#906
Profis wie auch Leihen kennen
alle das Wort "umbennen".
Mist, eine Silbe zuwenig für einen Schüttelreim oder ein Haiku.
Content-ID: 271073
Url: https://administrator.de/forum/mittels-batch-ordner-umbenennen-und-dateien-kopieren-271073.html
Ausgedruckt am: 13.05.2025 um 18:05 Uhr
12 Kommentare
Neuester Kommentar
[OT]
Moin Christoph,
willkommen im Forum.
Mach dir keine Sorgen wegen des "Umbennen"-Schreibfehlers.
Das ist hier im Forum schon Hunderten passiert - egal, wie oft davor gewarnt wird.
Und selbst in weit verbreiteter Massensoftware (zB. der beliebte TotalCommander) gibt/gab es "Umbennen"-Buttons.
Dieses Wort "Umbenennen" hat offensichtlich zu viele "e"s und "n"s für das menschliche Gehirn
Grüße
Biber
[/OT]
Moin Christoph,
willkommen im Forum.
Mach dir keine Sorgen wegen des "Umbennen"-Schreibfehlers.
Das ist hier im Forum schon Hunderten passiert - egal, wie oft davor gewarnt wird.
Und selbst in weit verbreiteter Massensoftware (zB. der beliebte TotalCommander) gibt/gab es "Umbennen"-Buttons.
Dieses Wort "Umbenennen" hat offensichtlich zu viele "e"s und "n"s für das menschliche Gehirn
Grüße
Biber
[/OT]
Du hast bei Copy-Item Anführungszeichen in den Pfaden vergessen.
<code/>
$User = [Environment]::UserName$Path = '\\sg1004z-v1\TOLHECH1$\Desktop\Neuer Ordner'
$xml = gci $Path | where name -like "*xml*" | select -ExpandProperty Name
$xml = $xml.Replace(".xml","")
Rename-Item $Path -NewName $xml
Copy-Item '\\sg1004z-v1\TOLHECH1$\Desktop\Neuer Ordner\$xml' -Destination '\\sg1004z-v1\TOLHECH1$\Desktop\Test2\Tedletter files
(xml)\'
Außerdem gibt es \\sg1004z-v1\TOLHECH1$\Desktop\Neuer Ordner\$xml nicht mehr, sondern nur noch \\sg1004z-v1\TOLHECH1$\Desktop\$xml
Ist das "$" bei THOLHECH1$ eigentlich gewollt?
Dann habe ich aber auch noch das Problem der Quelle, diese ist ja nicht mein User auf meinem Server, dies ist ein individueller
User auf einem beliebigen Server, sprich "\\sg1004z-v1\TOLHECH1$\" müsste einer Variablen weichen.
<code/>$server = [Environment]::MachineNameUser auf einem beliebigen Server, sprich "\\sg1004z-v1\TOLHECH1$\" müsste einer Variablen weichen.
Und dann noch ein Verständnisfrage, wie führt ein 0815 User ein solches Skript aus? Doppelklick auf die Datei
öffnet bei mir den Editor mit dem Skript, geschieht aber nichts.
Rechtsklick auf Datei -> öffnen mit.. -> powershell.exeöffnet bei mir den Editor mit dem Skript, geschieht aber nichts.
Dies läuft nun ohne Fehlermeldung durch, jedoch dies mit dem kopieren ist immer noch NOK. Resultat ist nun, dass er im Ordner
"Tedletter files (xml)" einen neuen Unterordner Namens "XML" erstellt.
Es funktioniert auch nicht wenn ich '$xml' schreibe.
"Tedletter files (xml)" einen neuen Unterordner Namens "XML" erstellt.
Es funktioniert auch nicht wenn ich '$xml' schreibe.
Kann es auch nicht, denn in der Copy-Item-Zeile muss der Pfad stehen, d.h. C:\Users\test\Desktop\XMLName.
Bei dir steht nur der Name der XML der kopiert wird, was bei Default-Einstellungen bedeutet, dass er "C:\Users\test\XMLName" kopieren will.
<code/>
$User = [Environment]::UserName
$Server = [Environment]::MachineName
$Path = "C:\Users\$User\Desktop\Neuer Ordner"
$xml = gci $Path | where name -like "*xml*" | select -ExpandProperty Name
$xml = $xml.Replace(".xml","")
$xml
Rename-Item $Path -NewName $xml
$path2 ="C:\Users\$User\Desktop\$xml"
Copy-Item $path2\ -Recurse -Destination "C:\$xml
Das sollte jetzt klappen (tut es zumindestens in meiner Testumgebung).
Guten Morgen,
falls dein Problem gelöst sein sollte, noch entsprechend
Wie kann ich einen Beitrag als gelöst markieren?
Grüße,
Tiberius
falls dein Problem gelöst sein sollte, noch entsprechend
Wie kann ich einen Beitrag als gelöst markieren?
Grüße,
Tiberius