noby.dick
Goto Top

Batchdatei Ordner nach Letztem Datum suchen und Dateien im Unterordner verschieben

Hallo,
ich habe folgendes Situation:

Ich habe mehrere Ordner die nach Datum benannt sind (z.B. 20161201, 20170329). Jahr.Monat.Tag
In diesen Ordnern sind wiederum 10 Unterordner ( Name z.B. 1,2,3, usw.)

Ich möchte gerne das per Batchbefehl , nach den letzten Datumsordner gesucht wird (hier: 20170329),
und dann eine Word-Datei (Test.docx) in Unterordner Nr. 3 und eine Excel-Datei(Hallo.xlsx) in Unterorder Nr. 8 kopiert wird.
Diese beiden Dateien liegen immer zwei Ordnerstukturen über die Datumsordner zB. auf C:/

Ich habe schon das ganze Forum durchgesucht, aber nicht das richtige gefunden.
Ich hoffe ihr könnt mir weiter helfen.

Gruß

Content-Key: 333459

Url: https://administrator.de/contentid/333459

Ausgedruckt am: 19.03.2024 um 05:03 Uhr

Mitglied: Kraemer
Kraemer 29.03.2017 aktualisiert um 07:46:00 Uhr
Goto Top
Moin,
Zitat von @noby.dick:
Ich habe schon das ganze Forum durchgesucht, aber nicht das richtige gefunden.
Fielmann!

for /f "delims=" %%i in ('dir /on /b') do set dest=%%i  

Gruß
Mitglied: TlBERlUS
TlBERlUS 29.03.2017 um 07:58:22 Uhr
Goto Top
Guten Morgen,

Powershell
$mainfolder = gci .\Desktop\test

$lastfolder = $mainfolder[-1].Fullname
$lastfolder
$searchsubolder3 = Test-path $lastfolder\3
if ($searchsubolder3 -eq $true){
    Copy-Item C:\temp\Test.docx -Destination $lastfolder\3
}
$searchsubolder8 = Test-path $lastfolder\8
if ($searchsubolder8 -eq $true){
    Copy-Item C:\temp\Hallo.xlsx -Destination $lastfolder\8
}

Grüße,

Tiberius
Mitglied: emeriks
emeriks 29.03.2017 um 09:26:49 Uhr
Goto Top
Fielmann!
Werbung ist hier verboten! face-wink
Mitglied: noby.dick
noby.dick 29.03.2017 um 13:18:21 Uhr
Goto Top
Hallo,

leider kenn ich mit Powershell noch gar nicht aus.
Kann man es auch über batch verwirklichen ??
Da ich das Programm in der Firma brauche und keine Adminstratorsrechte besitze.
Wäre toll wenn es klappen könnte
Gruß

noby.dick
Mitglied: Kraemer
Kraemer 29.03.2017 um 13:19:50 Uhr
Goto Top
Zitat von @noby.dick:
Kann man es auch über batch verwirklichen ??

ja, siehe oben. 75% des benötigten Codes steht da schon.
Mitglied: noby.dick
noby.dick 29.03.2017 um 13:27:14 Uhr
Goto Top
Hallo,

bin wirklich noch ganz am Anfang was das Scheiben solcher Befehle angeht, bitte verzeiht.

Kannst du mir die Befehlszeilen zeigen, die ich in einer Batch-Datei benutzen kann.

Gruß

noby.dick
Mitglied: Kraemer
Kraemer 29.03.2017 um 13:31:19 Uhr
Goto Top
Zitat von @noby.dick:
bin wirklich noch ganz am Anfang was das Scheiben solcher Befehle angeht, bitte verzeiht.
dann müsstest du das locker hinbekommen

Kannst du mir die Befehlszeilen zeigen, die ich in einer Batch-Datei benutzen kann.
und die Frage sagt mir: du hast 0 Ahnung.

Warum soll ich für dich kostenlos arbeiten? Meine Kunden bezahlen doch auch für meine Arbeit.
Mitglied: TlBERlUS
TlBERlUS 29.03.2017 um 13:58:47 Uhr
Goto Top
Zitat von @noby.dick:
leider kenn ich mit Powershell noch gar nicht aus.
Speicher es als .ps1-Datei ab und führe es aus
(die Pfade im Skript müssen natürlich angepasst werden)
Mitglied: rubberman
Lösung rubberman 29.03.2017 um 18:31:51 Uhr
Goto Top
Hallo noby.dick

@echo off &setlocal
for /f "delims=" %%i in ('dir /ad /b /on^|findstr /rx "20[0-9][0-9][01][0-9][0-3][0-9]"') do set "latest=%%i"  
copy "..\Test.docx" "%latest%\3\"  
copy "..\Hallo.xlsx" "%latest%\8\"  
In das Verzeichnis in dem deine "Datumsordner" liegen ...

Grüße
rubberman
Mitglied: noby.dick
noby.dick 29.03.2017 um 19:24:02 Uhr
Goto Top
Hallo rubberman,

hat super funktioniert, besten Dank.

Gruß

noby.dick
Mitglied: noby.dick
noby.dick 30.03.2017 um 00:56:31 Uhr
Goto Top
Hallo rubberman,

ich habe noch eine Frage,
ist es möglich.....

bevor die Dateien in Ordner 3 bzw. 8 rein kopiert werden, soll nachgeschaut werden ob die Datei "Test.docx" bzw. "Hallo.xlsx" jeweils schon exestieren,
wenn ja Datei nicht einfügen.

Gruß

noby.dick
Mitglied: rubberman
Lösung rubberman 30.03.2017 um 20:45:32 Uhr
Goto Top
Hallo noby.dick

Natürlich geht auch das
if not exist "%latest%\3\Test.docx" copy "..\Test.docx" "%latest%\3\"  
Analog für Hallo.xlsx ...

Grüße
rubberman
Mitglied: noby.dick
noby.dick 31.03.2017 um 19:33:06 Uhr
Goto Top
Hallo rubberman,

wiedermal top, klappt alles so wie gewünscht, Daumen hoch