Top-Themen

Aktuelle Themen (A bis Z)

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
Kommentar vom Moderator Biber am 22.09.2009 um 09:39:28 Uhr
Verschoben von "Windows" nach "Batch & Shell".
GELÖST

Datei in gleichnamigen Ordner kopieren per Batch

Frage Entwicklung Batch & Shell

Mitglied: tomnight2002

tomnight2002 (Level 1) - Jetzt verbinden

22.09.2009, aktualisiert 09:39 Uhr, 7825 Aufrufe, 13 Kommentare

Leider habe ich durch Suchen nichts passendes gefunden. Ich suche die Möglichkeit Dateien aus einem Verzeichnis in einen gleichnamigen Ordner zu kopieren.

Hallo zusammen. Ich habe ein kleines Problem und hoffe hier gibt es dazu Hilfe oder ein paar Tipps.
Ich habe in einem Ordner Dateien erzeugt per Scanner. Diese tragen den Namen 12345.tif, 12346.tif, 12347.tif .....99999.tif

Diese Dateien sollen jetzt in gleichnamige Ordner verschoben werden. Dabei muss dann aber falls möglich der Dateiname um einen Suffix erweitert werden.

Also die Datei 12345.tif soll in den bestehnden Ordner 12345 verschoben werden. Sollte dort jetzt eine Datei mit dem selben Namen enthalten sein, muss der Name um ein Suffix erweitert werden
Bsp:

Ordner 12345 enthält bereits die Datei 12345_1.tif und 12345_2.tif so soll jetzt die Datei umbenannt werden in 12345_3.tif und in diesen Ordner verschoben werden.

Sollte dies nun nicht klappen, werde ich meine Datei eben am Scanner so erzeugen lassen.
D.h. ich gebe beim Drucken des Barcodes 12345_1 aus und habe nun die Datei schon mit dem richtigen Namen.

Jetzt müsste das Programm oder die Batch prüfen was steht vor dem _1 also 12345 und kopiert diese Datei in den Ordner 12345


Ich hoffe ich habe das so erklärt, dass ihr was damit anfangen können.
Für schnelle Hilfe wäre ich sehr dankbar.

mfg
Thomas
Mitglied: pieh-ejdsch
22.09.2009 um 13:54 Uhr
Hi Thomas,

den Ornder der Tif auf den Batch ziehen oder im Batch %~1
durch den Pfad und name des Ordners ersetzen. in Zeile 2 und 3

01.
@echo off &setlocal 
02.
if not exist "%~1." goto :eof 
03.
pushD "%~1" 
04.
for %%i in (*.tif) do set "name=%~ni" & call :move 
05.
popD 
06.
goto :eof 
07.
:move 
08.
if exist "%name%" goto :test 
09.
mkdir "%name%" 
10.
move "%name%.tif" "%name%" & goto :eof 
11.
:test 
12.
set /a nr=1 
13.
for %%i in ("%name%\%name%_*.tif") do set /a nr+=1 
14.
move "%name%.tif" "%name%\%name%_%nr%.tif" 
15.
goto :eof
Gruß Phil
Bitte warten ..
Mitglied: tomnight2002
22.09.2009 um 14:34 Uhr
Hallo Phil,
vielen Dank für die Mühe und deine Hilfe. Leider klappt es nicht ganz bei mir.
Ich habe zum Testen den Ordner d:\astra\quelle angelegt.
Dort liegen nun meine Bilder (*.tif)

Weiter habe ich das Programm wie folgt verändert mit den Pfadangaben

set "quelle=D:\Astra\quelle"
echo %quelle% ( Wollte sehen ob der Pfad stimmt ist also nicht wichtig)
rem @echo off & setlocal (Rem, damit ich sehe was los ist)
if not exist "%quelle%" goto :eof
pushD "%quelle%"
for %%i in (*.tif) do set "name=%~i" & call :move
popD
goto :eof
:move
if exist "%name%" goto :test
mkdir "%name%"
move "%name%.tif" "%name%" & goto ::eof

:test
set /a nr=1
for %%i in ("%name%\%name%_*.tif") do set /a nr+=1
move "%name%.tif" "%name%\%name%_%nr%.tif"
goto :eof

Dos gibt mir nun folgenden Fehler zurück

D:\Astra\quelle>kopiere

D:\Astra\quelle>set "quelle=D:\Astra\quelle"

D:\Astra\quelle>echo D:\Astra\quelle
D:\Astra\quelle

D:\Astra\quelle>rem @echo off & setlocal

D:\Astra\quelle>if not exist "D:\Astra\quelle" goto :ende1

D:\Astra\quelle>pushD "D:\Astra\quelle"
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters
ist ungültig: %~i" & call :move


Geben Sie CALL /? oder FOR /? ein, um herauszufinden, welche Formate gültig
sind.
"♥" kann syntaktisch an dieser Stelle nicht verarbeitet werden.

D:\Astra\quelle>for %i in (*.tif) do set "name==%~i" & call :move

Was habe ich falsch gemacht??? - Hast du noch eine Idee ??

Vielen Dank schon mal für deine Antwort.
mfg
Thomas
Bitte warten ..
Mitglied: Biber
22.09.2009 um 18:47 Uhr
Moin tomnight2002,

willkommen im Forum.

Ersetze bitte das einfache Prozentzeichen durch ein doppeltes vor der FOR-Laufvariablen in PHs Zeile 4.

Richtiger: for %%i in (*.tif) do set "name=%%~ni"

Grüße
Biber
Bitte warten ..
Mitglied: pieh-ejdsch
22.09.2009 um 19:39 Uhr
hach sowas...

bekomme ich dann den Preis für Schusselfehler nun doch irgenwann

Gruß Phil
Bitte warten ..
Mitglied: Biber
22.09.2009 um 20:41 Uhr
<OT>

Ach weißt DU, PH,

mir ist es lieber, solche Schusselfehler zu lesen (oder auch zu machen) in selbst runtergetippseltem Code als irgendein Skript zu korrigieren oder zu warten, das aus drei oder mehr lose zusammengetackerten Copy&Paste-Blöcken aus verschiedenen Quellen und von verschiedenen Autoren besteht.

Bei Deinen Schnipseln mögen Tippfehler enthalten sein, aber die Programmlogik, Nachvollziehbarkeit und -Lesbarkeit ist gegeben.

Und damit lässt sich auf Dauer mehr anfangen als mit einem Skript der Gütekategorie "funktionierend, aber ich auch nicht so genau, was da passiert".

Grüße
Biber
</OT>
Bitte warten ..
Mitglied: tomnight2002
23.09.2009 um 10:41 Uhr
Hallo Leute. VIELEN DANK!!!!!!
Echt klasse und super schnell gelöst. Das klappt jetzt alles so, wie ich es mir vorgestellt habe.
Finde es richtig gut, wenn einem so schnell geholfen wird. Ich hoffe ich kann auch einmal hier im Forum jemandem Helfen.

Gruß Thomas
Bitte warten ..
Mitglied: Iceman
01.04.2011 um 16:03 Uhr
Hallo Thomas,

könntest du bitte deinen entgültigen Code hier posten.

Benötige das selbe, aber ich habe noch nicht verstanden, wie die Endversion aussehen muss.

Ich möchte übrigens damit mkv-Dateien/Ordner bearbeiten/verarbeiten.

Gruß Ice aus MVP
Bitte warten ..
Mitglied: pieh-ejdsch
01.04.2011 um 18:56 Uhr
moin Iceman,

Hier haste eine etwas wartbarere Version
01.
@echo off &setlocal 
02.
if not exist "%~1." goto :eof 
03.
 
04.
:: Einstellung für Datentypen 
05.
set "DateiTyp=.MVP" 
06.
 
07.
pushD "%~1" 
08.
for %%i in (*%DateiTyp%) do set "name=%%~ni" & set "EXT=%%~xi" & call :move 
09.
popD 
10.
goto :eof 
11.
:move 
12.
if exist "%name%" goto :test 
13.
mkdir "%name%" 
14.
move "%name%%EXT%" "%name%" & goto :eof 
15.
:test 
16.
set /a nr=1 
17.
for %%i in ("%name%\%name%_*%EXT%") do set /a nr+=1 
18.
move "%name%%EXT%" "%name%\%name%_%nr%%EXT%" 
19.
goto :eof
Gruß Phil
Bitte warten ..
Mitglied: Iceman
01.04.2011 um 21:38 Uhr
Hey Phil

genau das meinte ich. Ich werd bekloppt.

Vielen lieben Dank.

Schönes Wochenende.

PS. solche Helfer braucht das Land (Forum)
Bitte warten ..
Mitglied: bastla
01.04.2011 um 21:44 Uhr
[OT] @PH
set "DateiTyp=MVP"
gefällt mir irgendwie ...
Hinsichtlich der angefügten Nummer würde ich mich aber eher nicht auf das Abzählen der vorhandnen Files verlassen, sondern einfach so lange hochzählen, bis es keine Datei mit der aktuellen Nummer als Suffix gibt:
01.
set /a nr=1  
02.
:Schleife 
03.
if exist "%name%\%name%_%nr%%EXT%" (set /a nr+=1 & goto :Schleife) 
04.
move "%name%%EXT%" "%name%\%name%_%nr%%EXT%"  
05.
goto :eof
Grüße
bastla
[/OT]
Bitte warten ..
Mitglied: pieh-ejdsch
02.04.2011 um 00:34 Uhr
moin bastla,

set "DateiTyp=MVP"
war ja auch gar net so Geplant. - Liegt aber irgendwie in meiner Natur, das es immer wieder auf solche Sachen herausläuft einmal selbst Brain anzuschalten (warum auch immer) - ich kann aber nix dafür...

im Grunde genommen geht es ja "nur" um das Verschieben einer Datei mit dem Namen XYZ in den Ordner XYZ.
(im Stillschweigenden) gehe ich davon aus.
wenn die Datei "XYZ.ext" schon in den Ordner drin ist, sollte doch eine solche For-Schleife ausreichen da die ja Übersetzt ( "XYZ*.ext") alle Dateien, welche mit XYZ beginnen und der Extension ".ext" abzählen.

ja eigentlich müsste es ja:
01.
set /a nr = 0
heissen, da ja schon bei der Existenz vom 1. File an eins höher gezählt wird.
Zitat von tomnight2002
Also die Datei 12345.tif soll in den bestehnden Ordner 12345 verschoben werden. Sollte dort jetzt eine Datei mit dem selben Namen enthalten sein, muss der Name um ein Suffix erweitert werden
Aber ich gehe davon aus,: -> das File ohne Nummer ist das File welches die Nummer 1 bekommen hätte. -> Null heisst ja auch es ist nichts da.

Gruß Phil
Bitte warten ..
Mitglied: bastla
02.04.2011 um 00:39 Uhr
@PH
Was ich gemeint hatte: Wenn, aus welchen Gründen auch immer, nur die Dateien "XYZ_1.ext" und "XYZ_3.ext" existieren, wird beim bloßen Abzählen die nächste Datei auch "XYZ_3.ext" benannt, während bei meinem Ansatz die Lücke (mit "XYZ_2.ext") gefüllt würde ...

Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
02.04.2011 um 01:04 Uhr
ja aus dem Gesichtspunkt hatte ich das noch gar net Betrachtet. Da ist Dein seperates Abzählen-und-prüfen wirklich besser.

da führt dann nur noch das "XYZ_2.ext" - falls es älter ist als "XYZ_3.ext" in die Datumsirre - was letztendlich im Auge (in der Wartung) des Anwenders liegt...

Gruß Phil
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Per Batch Datei umbennen und kopieren mit Angaben aus gleichnamiger CSV
gelöst Frage von ThomasWBatch & Shell7 Kommentare

Hallo, ich habe ein Problem und weiß nicht so recht wie ich es per Batch lösen kann. Eine Software ...

Batch & Shell
Batch aktuellsten Ordner kopieren
gelöst Frage von MmarKussBatch & Shell2 Kommentare

Hallo @ all Problembeschreibung Ich habe einen Ordner, in welchem alle Daten in ojektbezogenen Unterordnern abgespeichert sind. (D:\Data_all ) ...

Batch & Shell
Batch Ordner mit Zeitstempel erstellen und Datei hinein kopieren
Frage von CHiLL3RBatch & Shell3 Kommentare

Hi, hab hier grad so meine Probleme. In der Batch soll ein Backup einer Datenbankdatei angelegt werden. Es handelt ...

Batch & Shell
Ordner per Batch verschieben, Datei kopieren
gelöst Frage von Shape.ShifterBatch & Shell2 Kommentare

Guten Abend :) Ich möchte mein Backup etwas anpassen und muss dafür viele Ordner verschieben und jeweils eine Datei ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 12 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 14 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Batch & Shell
Neuste Datei via PowerShell kopieren
gelöst Frage von kaiuwe28Batch & Shell11 Kommentare

Hallo zusammen, ich hatte mir mit Hilfe der Suche im Forum einen kleinen Code von colinardo rausgesucht und versucht ...