Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Batch Prüfen ob Datei bereits in Ordner

Frage Entwicklung Batch & Shell

Mitglied: Herby-z

Herby-z (Level 1) - Jetzt verbinden

20.03.2008, aktualisiert 21.03.2008, 5207 Aufrufe, 3 Kommentare

Hallo Allerseits,

ich habe vor einiger Zeit mit euerer Hilfe folgendes Batchprogramm erstellt.
(Dateien mit der Bezeichnung 10000.tif bis 20000.tif werden von C:\Start in den Ordner C:\Ziel\Nummer\ verschoben)


::----snipp MoveIntoRechNo.bat

@echo on & setlocal enableDelayedExpansion & set "target=C:\Ziel" & set "src=C:\Start"
For /l %%i in (1000010000,1,1000020000) do set "fn=%%i" && if exist "%src%\!Fn:~-9!.*" (
if not exist "%target%\!Fn:~1,9!" md %target%\!Fn:~1,9!
move /-y %src%\!Fn:~-9!.* %target%\!Fn:~1,9!\ >nul && echo Gemoved: %target%\!Fn:~1,9!\!Fn:~-9!.*
)


Leider habe ich damals nicht daran gedacht überprüfen zu lassen ob die Datei bereits im Zielordner vorhanden ist.
Deshalb bleibt das Programm beim vorhandensein der Datei einfach stehen.

Ich würde jetzt gerne entweder diese Nummer überspringen oder besser noch diese Datei umbenennen
(z.B. die Datei 10000.tif gibt es bereits im Ordner C:\Ziel\10000\ dann soll entweder die neue oder bestehende Datei auf 10000_1.tif umbenannt werden bzw. wenn 10000_1.tif auch vorhanden dann 10000_2.tif)

Da ich in der Batcherstellung ein ziemliches Greenhorn bin hoffe ich das Ihr mir auch dieses mal weiterhelft.


Mit bestem Dank
Herby_z
Mitglied: bastla
20.03.2008 um 17:33 Uhr
Hallo Herby_z!

Ich habe mal Biber's doch recht kompakten Code ein wenig aufgedröselt und (hoffentlich) Deinem Wunsch entsprechend ergänzt:
01.
@echo off & setlocal 
02.
set "target=C:\Ziel" 
03.
set "src=C:\Start" 
04.
 
05.
for /l %%i in (1000010000,1,1000020000) do set "Fn=%%i" & call :ProcessFolder 
06.
goto :eof 
07.
 
08.
:ProcessFolder 
09.
if not exist "%src%\%Fn:~-9%.*" goto :eof 
10.
set "TargetFolder=%target%\%Fn:~1,9%" 
11.
if not exist "%TargetFolder%" md "%TargetFolder%" 
12.
for %%j in ("%src%\%Fn:~-9%.*") do call :ProcessFile "%%~fj" 
13.
goto :eof 
14.
 
15.
:ProcessFile 
16.
set Suffix= 
17.
set /a Counter=0 
18.
 
19.
:Loop 
20.
if not exist "%TargetFolder%\%~n1%Suffix%%~x1" goto :MoveIt 
21.
set /a Counter+=1 
22.
set "Suffix=_%Counter%" 
23.
goto :Loop 
24.
 
25.
:MoveIt 
26.
move /-y %1 "%TargetFolder%\%~n1%Suffix%%~x1">nul && echo Moved: "%TargetFolder%\%~n1%Suffix%%~x1" 
27.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Herby-z
21.03.2008 um 08:10 Uhr
Super funktioniert genau wie ich wollte.
Ich wusste auf euch ist Verlass.

Gruss
Herby
Bitte warten ..
Mitglied: Biber
21.03.2008 um 15:07 Uhr
@bastla
Ich habe mal Biber's doch recht kompakten Code...
*rotwerd*
Nenn es ruhig beim Namen... der damals von mir gepostete Schnipsel ist nicht lesbar oder wartbar, enthält keine Kommentarzeilen und nach 3 Monaten geht Neuschreiben eines anderen Batches schneller als das Nachvollziehen des Krypto-Codes.

Passiert manchmal im Verlauf einer angeregten Diskussion...

Danke jedenfalls für die Anpassung und Entschlüsselung.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Ordner per Batch verschieben, Datei kopieren (2)

Frage von Shape.Shifter zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch - Datei aus Ordner einlesen mit Ausnahmen! (4)

Frage von Daedrafaction zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Batch & Shell
gelöst Per FTP-Shell oder Batch in ein unbekanten Ordner wechseln (8)

Frage von Ducky2 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...