scaary
Goto Top

Dateien mit bestimmten Dateinamenbestandteil in vorhandenen Ordner kopieren

Hallo,

ich habe mich jetzt schon durch viele Forenbeiträge durchgearbeitet, konnte mein Problem aber noch nicht so recht lösen.

Und zwar habe ich in einem Ordner mehrere Unterordner in denen sich mehrere Dateien befinden. Unter diesen Dateien ist eine die mit dem Erstellungsdatum im Namen beginnt. Diese Datei möchte ich gerne in einen anderen Ordner kopieren. Dazu habe ich mir folgendes zusammen gesucht:

@echo off && title %~n0 && color 70
setlocal
rem Bitte Quellordner anpassen!
set Quellordner="M:\SOFTWARE\VERTEILER\"  
 
echo. && echo Kopiere alle Dateien um . . . && echo.
rem analog der Site:
rem [content:160376]
for /f "delims=" %%i in ('dir /b %Quellordner%*.pdf^|findstr /b "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"') do call :Uprg %%i  
 
echo.
pause
goto :Ende
 
:Uprg
set Dateiname="%~1"  
set ZielOrdner="M:\SOFTWARE\UploadsHomepage"  
echo Kopiere %Dateiname% nach %ZielOrdner%
copy %Quellordner%%Dateiname% %Quellordner%%Dateiname:~0,4%
:Ende
Endlocal

Leider bekomme ich im Fenster immer nur angezeigt, dass er die Datei nicht finden konnte. Allerdings scheint er den Dateinamen auch nur bis zum ersten Leerzeichen zu übernehmen.

Dann kommt da noch eine zweite Schwierigkeit dazu:

Und zwar befindet sich in dem Ordner eine zweite Datei, die identisch beginnt, aber immer die Buchstaben "UNB" beinhaltet. Diese Datei soll nicht mitkopiert werden.

Ich hoffe, ihr könnt mir hierbei helfen, unsere Sekretärin wird langsam grantig ;)

Vielen Dank!

Content-Key: 373775

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

Printed on: April 27, 2024 at 14:04 o'clock

Mitglied: 136166
136166 May 14, 2018 updated at 08:39:16 (UTC)
Goto Top
@echo off && title %~n0 && color 70
setlocal
rem Bitte Quellordner und Zielordner anpassen!
set "Quellordner=M:\SOFTWARE\VERTEILER"  
set "ZielOrdner=M:\SOFTWARE\UploadsHomepage"  
echo Kopiere alle Dateien um . . . 
for /f "delims=" %%a in ('dir /b /s /a-d "%Quellordner%\*.pdf" ^|findstr /b "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" ^| findstr /iv "UNB" 2^>nul') do copy "%%a" "%Zielordner%"  
pause
Member: scaary
scaary May 14, 2018 at 08:34:56 (UTC)
Goto Top
Hallo,

vielen Dank für die schnelle Antwort.

Leider klappt es aber immernoch nicht face-sad

anscheinend durchläuft er die Schleife nicht (ich habe das mal mit einer echo Ausgabe überprüft, es wird nichts angezeigt).

Starte ich die Datei als Administrator wird mir angezeigt dass das System die Datei nicht finden kann... . Dateipfade der Ordner stimmen aber (habe ich mir ebenfalls ausgeben lassen).

Danke.
Mitglied: 136166
136166 May 14, 2018 updated at 08:38:19 (UTC)
Goto Top
Zitat von @scaary:
Leider klappt es aber immernoch nicht face-sad
Doch geht, getestet.
Starte ich die Datei als Administrator wird mir angezeigt dass das System die Datei nicht finden kann... . Dateipfade der Ordner stimmen aber (habe ich mir ebenfalls ausgeben lassen).
"Richtig" kopieren dann geht das auch.
Member: scaary
scaary May 14, 2018 at 08:54:38 (UTC)
Goto Top
;)
Danke, richtig kopieren hab ich hinbekommen, daran scheiterte es leider nicht.

Kann das Problem da liegen, dass es sich bei Quell- und Ziellaufwerk um ein Netzwerklaufwerk handelt?
Mitglied: 136166
136166 May 14, 2018 updated at 17:04:34 (UTC)
Goto Top
Zitat von @scaary:
Kann das Problem da liegen, dass es sich bei Quell- und Ziellaufwerk um ein Netzwerklaufwerk handelt?
Das wäre ein Problem wenn du deine Cmd elevated in anderem Benutzerkontext startest oder die UAC aus ist. Denn Netzlaufwerke sind Sessionabhängig gemappt!
Also entweder UNC Pfade verwenden die Cmd im Userkontext laufen lassen oder den EnableLinkedConnections Registry Key setzen.