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

Printed on: April 24, 2024 at 19:04 o'clock

Member: Kraemer
Kraemer Mar 29, 2017 updated at 05:46:00 (UTC)
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ß
Member: TlBERlUS
TlBERlUS Mar 29, 2017 at 05:58:22 (UTC)
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
Member: emeriks
emeriks Mar 29, 2017 at 07:26:49 (UTC)
Goto Top
Fielmann!
Werbung ist hier verboten! face-wink
Member: noby.dick
noby.dick Mar 29, 2017 at 11:18:21 (UTC)
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
Member: Kraemer
Kraemer Mar 29, 2017 at 11:19:50 (UTC)
Goto Top
Zitat von @noby.dick:
Kann man es auch über batch verwirklichen ??

ja, siehe oben. 75% des benötigten Codes steht da schon.
Member: noby.dick
noby.dick Mar 29, 2017 at 11:27:14 (UTC)
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
Member: Kraemer
Kraemer Mar 29, 2017 at 11:31:19 (UTC)
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.
Member: TlBERlUS
TlBERlUS Mar 29, 2017 at 11:58:47 (UTC)
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)
Member: rubberman
Solution rubberman Mar 29, 2017 at 16:31:51 (UTC)
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
Member: noby.dick
noby.dick Mar 29, 2017 at 17:24:02 (UTC)
Goto Top
Hallo rubberman,

hat super funktioniert, besten Dank.

Gruß

noby.dick
Member: noby.dick
noby.dick Mar 29, 2017 at 22:56:31 (UTC)
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
Member: rubberman
Solution rubberman Mar 30, 2017 at 18:45:32 (UTC)
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
Member: noby.dick
noby.dick Mar 31, 2017 at 17:33:06 (UTC)
Goto Top
Hallo rubberman,

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