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

Via Batch Dateien mit Zahlen-Name größer als löschen ?

Frage Entwicklung Batch & Shell

Mitglied: weaslflink

weaslflink (Level 1) - Jetzt verbinden

17.01.2012 um 08:02 Uhr, 3588 Aufrufe, 21 Kommentare

Guten morgen liebe Community,

Ich stehe vor einem Problem (was auch sonst )

Ich möchte gerne Dateien kopieren/löschen deren Name größer gleich >=, bzw kleiner gleich <= ist.

Die Dateinamen sind so aufgebaut:

4475_13356489.pdf
4500_55567423.pdf
30501_55574561.pdf
...
...


Worauf ich speziell hinaus möchte ist das alle Dateien mit Name >= (größer gleich) 4500_*.pdf auf Ort X und alle dateien die <= (kleiner gleich) 4475_*.pdf auf Ort Y zu kopieren und anschließend zu löschen.

Ist dies mit Batch einfach zu gestalten ?

Es muss nicht zwingend in einer Batch datei stehen es kann auch in 2 gesplittet werden.


Ihr habt mir hier schonmal sehr erfolgreich geholfen.

Das ist der Code den ich derzeit benutze.

01.
echo off 
02.
echo Dateien werden kopiert. Das Fenster schliesst auotmatisch ! 
03.
 
04.
 
05.
set "SrcDir=%userprofile%\Documents\My Scans"  
06.
set "DestDir=G:"  
07.
set "FileType=pdf"  
08.
 
09.
for /f "tokens=1* delims=_" %%a in ('dir /b /a:-d "%SrcDir%\*_*.%FileType%" 2^>NUL') do (  
10.
  call :RenOldVersion "%DestDir%\%%a\%%a_%%b"  
11.
  xcopy "%SrcDir%\%%a_%%b" "%DestDir%\%%a\%%a_%%b*" > NUL  
12.
)  
13.
  del "%userprofile%\Documents\My Scans\*.pdf" 
14.
 
15.
  
16.
:RenOldVersion  
17.
  set /a "NumFiles=0"  
18.
  
19.
  for /f "tokens=1 delims=:" %%c in ('dir /b /a:-d "%~dpn1*%~x1" 2^>NUL ^| findstr /n "^"') do (  
20.
    set /a "NumFiles=%%c"  
21.
  )  
22.
  
23.
  if %NumFiles% gtr 0 ren "%~1" "%~n1(%NumFiles%)%~x1" 
24.
 
25.
 
26.
 
27.
exit /b 
28.
 


Vielen Dank schon mal im voraus !
Mitglied: bastla
17.01.2012 um 09:05 Uhr
Hallo weaslflink!

Könnte etwa so gehen (ungetestet):
01.
echo off & setlocal 
02.
set "SrcDir=%userprofile%\Documents\My Scans"  
03.
set "FileType=pdf"  
04.
set /a Nr1=4500 
05.
set "Dest1=X:\" 
06.
set /a Nr2=4475 
07.
set "Dest2=Y:\" 
08.
 
09.
for /f "tokens=1* delims=_" %%a in ('dir /b /a:-d "%SrcDir%\*_*.%FileType%" 2^>NUL') do (  
10.
    if %%a geq %Nr1% echo move "%SrcDir%\%%a_%%b" "%Dest1%" 
11.
    if %%a leq %Nr2% echo move "%SrcDir%\%%a_%%b" "%Dest2%" 
12.
) 
Wegen des "echo" vor dem"move" wird der Befehl zum Verschieben (zum Testen) nur angezeigt, aber noch nicht ausgeführt ...

Im Zielordner bereits vorhandene gleichnamige Dateien würden in dieser Fassung überschrieben werden.

Dateien, deren Name mit 4476 bis 4499 beginnt würden im Quellordner verbleiben. Wenn es darum ginge, den obigen Batch weiter zu verwenden, müsstest Du noch die Vorgangsweise für diese Dateien bekannt geben, da ja am Ende alle Dateien gelöscht würden ...

...ansonsten könnten die Zeilen 10 und 11 durch
01.
if %%a geq %Nr1% ( 
02.
  call :RenOldVersion "%Dest1%\%%a\%%a_%%b" 
03.
  xcopy "%SrcDir%\%%a_%%b" "%Dest1%\%%a\%%a_%%b*" > NUL 
04.
) else ( 
05.
  if %%a leq %Nr2% ( 
06.
    call :RenOldVersion "%Dest2%\%%a\%%a_%%b" 
07.
    xcopy "%SrcDir%\%%a_%%b" "%Dest2%\%%a\%%a_%%b*" > NUL 
08.
  ) else ( 
09.
    echo Nr zwischen 4476 und 4499 
10.
11.
)
ersetzt werden.

Grüße
bastla

P.S.: In Zeile 14 Deines bisherigen Batches fehlt noch
exit /b
und Zeile 13 sollte besser
del "%SrcDir%\*_*.%FileType%"
lauten ...
Bitte warten ..
Mitglied: weaslflink
17.01.2012 um 09:32 Uhr
Hallo bastla ,

vielen erstmal das du mir schon wieder hilfst.

Ich würde gerne die obigen Batch weiterverwenden.

Ich erläutere mal die Vorgehensweise.

Ich habe in einem Ordner mehrer PDF-Dateien. Diese fangen mit verschiedenen Zahlen an. Hier ein Bsp.:
36_*.pdf
3474_*.pdf
20501_*.pdf
6603_*.pdf
usw.

also es sind "quasi" fortlaufende zahlen am anfang. Diese sollen via Xcopy in Ordner Y in die entsprechenden Ordner (36,3474,20501,6603,....) kopiert werden und falls der Dateiname schon vorhanden ist am Schluss erweitert werden (siehe RenOldVersion). Daher ist es sehr Wichtig ! das die Dateien nicht überschrieben werden.

Nun ist das Problem das mein USB-Speicher voll ist und ich diese Ordner (80Stk) auf 2 USB-Sticks verteilen musste.
Deshalb brauch ich ein Scribt welche die Dateien deren Anfang ( von 0_*pdf bis 4999_*.pdf) auf meinen USB-Stick X und alle Dateien deren Anfang größer gleich 4500_*.pdf auf meinen USB-Stick Y kopiert werden.

Das heißt alle Zahlen als bsp: 4500,4501,4502,4503,4504,..,5001,5002,5003,5004,...,5100,5101,... usw. auf USB Y kopiert werden. Nach oben hinaus wäre in diesem Fall kein problem.

Bei USB X darf es jedoch nur bis 4999 gehen.

Ich hoffe ich habe mich verständlich ausgedrückt.
Bitte warten ..
Mitglied: weaslflink
17.01.2012 um 09:43 Uhr
Für was steht denn das in Zeile 14 "exit /b" ? Bisher hat das Script nämlich einwandfrei funktioniert.
Bitte warten ..
Mitglied: weaslflink
17.01.2012 um 10:56 Uhr
Also ich habe mir das ungefähr so gedacht:

01.
set /a =0 - 4999
oder geht das nicht und ich müsste es so machen ?

01.
set /a=0,1,2,3,4,5,6,7,8,9,10,11,...
wird dann dabei nur die Zahlen vor dem Unterstrich beachtet oder alle Zahlen in dem Dateinamen ?
Bitte warten ..
Mitglied: bastla
17.01.2012 um 12:25 Uhr
Hallo weaslflink!

Da Du 4500 und 4475 vorgibst, hatte ich eigentlich auch angenommen, dass die Grenzen ernst gemeint sind - Du kannst aber einfach in meinem Ansatz oben 4475 durch 4499 ersetzen ...

Anyhow - meine Hinweise oben hätten sich in Deinem bisherigen Batch etwa so niederschlagen sollen:
01.
echo off & setlocal 
02.
echo Dateien werden kopiert. Das Fenster schliesst auotmatisch ! 
03.
 
04.
set "SrcDir=%userprofile%\Documents\My Scans"  
05.
set "FileType=pdf"  
06.
 
07.
set /a Nr1=4500 
08.
set "Dest1=X:" 
09.
set /a Nr2=4499 
10.
set "Dest2=Y:" 
11.
 
12.
for /f "tokens=1* delims=_" %%a in ('dir /b /a:-d "%SrcDir%\*_*.%FileType%" 2^>NUL') do (  
13.
if %%a geq %Nr1% ( 
14.
  call :RenOldVersion "%Dest1%\%%a\%%a_%%b" 
15.
  echo xcopy "%SrcDir%\%%a_%%b" "%Dest1%\%%a\%%a_%%b*" > NUL 
16.
) else ( 
17.
  if %%a leq %Nr2% ( 
18.
    call :RenOldVersion "%Dest2%\%%a\%%a_%%b" 
19.
    echo xcopy "%SrcDir%\%%a_%%b" "%Dest2%\%%a\%%a_%%b*" > NUL 
20.
  ) else ( 
21.
    REM #nicht mehr erforderlich# echo Nr zwischen 4476 und 4499 
22.
23.
24.
)  
25.
echo del "%SrcDir%\*_*.%FileType%" 
26.
exit /b 
27.
  
28.
:RenOldVersion  
29.
set /a "NumFiles=0"  
30.
  
31.
for /f "tokens=1 delims=:" %%c in ('dir /b /a:-d "%~dpn1*%~x1" 2^>NUL ^| findstr /n "^"') do (  
32.
  set /a "NumFiles=%%c"  
33.
)  
34.
  
35.
if %NumFiles% gtr 0 echo ren "%~1" "%~n1(%NumFiles%)%~x1" 
36.
exit /b
Wenn tatsächlich nur eine Unterscheidung "unter 4500" und "ab 4500" zu treffen ist, lässt sich das noch auf
01.
echo off & setlocal 
02.
echo Dateien werden kopiert. Das Fenster schliesst auotmatisch ! 
03.
 
04.
set "SrcDir=%userprofile%\Documents\My Scans"  
05.
set "FileType=pdf"  
06.
 
07.
set /a Grenze=4500 
08.
set "Dest1=X:" 
09.
set "Dest2=Y:" 
10.
 
11.
for /f "tokens=1* delims=_" %%a in ('dir /b /a:-d "%SrcDir%\*_*.%FileType%" 2^>NUL') do (  
12.
if %%a geq %Nr1% ( 
13.
  call :RenOldVersion "%Dest1%\%%a\%%a_%%b" 
14.
  echo xcopy "%SrcDir%\%%a_%%b" "%Dest1%\%%a\%%a_%%b*" > NUL 
15.
) else ( 
16.
  call :RenOldVersion "%Dest2%\%%a\%%a_%%b" 
17.
  echo xcopy "%SrcDir%\%%a_%%b" "%Dest2%\%%a\%%a_%%b*" > NUL 
18.
)  
19.
echo del "%SrcDir%\*_*.%FileType%" 
20.
exit /b 
21.
  
22.
:RenOldVersion  
23.
set /a "NumFiles=0"  
24.
  
25.
for /f "tokens=1 delims=:" %%c in ('dir /b /a:-d "%~dpn1*%~x1" 2^>NUL ^| findstr /n "^"') do (  
26.
  set /a "NumFiles=%%c"  
27.
)  
28.
  
29.
if %NumFiles% gtr 0 echo ren "%~1" "%~n1(%NumFiles%)%~x1" 
30.
exit /b
Zum Testen sind hier wieder "Sicherheits-echos" eingebaut (Zeilen 15, 19, 25, 35 bzw 14, 17, 19, 29) ...
Das fehlende "exit /b" sorgt dafür, dass der Batch nach Durchlaufen der Schleife und dem Löschen der Dateien beendet und nicht nochmals das Unterprogramm ":RenOldVersion" durchlaufen wird.
Grüße
bastla

[Edit] Korrrekturen (siehe unten vorgenommen) [/Edit]
Bitte warten ..
Mitglied: weaslflink
17.01.2012 um 12:54 Uhr
Danke für deine Hilfe, bin leider noch nicht so gut bewandert in Batch deswegen habe ich den Ansatz von dir nicht gesehen und konnte ihn somit nicht ummodellieren.
Aber hatte eben den "ahhh stimmt ja ... ich idiot" Moment als du in deinem letzten post darauf hingewiesen hast.

jetzt noch eine Frage in Zeile 12
01.
if %%a geq %Nr1% ( 
was bedeutet dort das "%Nr1%" bezieht sich das nicht auf eine angegeben "set-variable" bzw könnte man das nicht weglassen weil man doch schon damit besagt
"wenn a (4500) größer gleich ist dann bitte auf ort X kopieren wenn dem nicht so ist dann auf Ort Y"
Bitte warten ..
Mitglied: weaslflink
17.01.2012 um 13:04 Uhr
habe es getestet. bekomme jedoch leider einen Syntaxfehler

01.
C:\Users\pzhqch>echo on   & setlocal 
02.
 
03.
C:\Users\pzhqch>echo Dateien werden kopiert. Das Fenster schliesst auotmatisch ! 
04.
 
05.
Dateien werden kopiert. Das Fenster schliesst auotmatisch ! 
06.
 
07.
C:\Users\pzhqch>set "SrcDir=C:\Users\pzhqch\Documents\MyScans" 
08.
 
09.
C:\Users\pzhqch>set "FileType=pdf" 
10.
 
11.
C:\Users\pzhqch>set /a Grenze=4500 
12.
 
13.
C:\Users\pzhqch>set "Dest1=C:\Users\pzhqch\Documents\MyScans\test1" 
14.
 
15.
C:\Users\pzhqch>set "Dest2=C:\Users\pzhqch\Documents\MyScans\test2" 
16.
Syntaxfehler. 
17.
C:\Users\pzhqch>if %a geq (
Bitte warten ..
Mitglied: bastla
17.01.2012 um 13:26 Uhr
Hallo weaslflink!

Leider hatte ich es wieder mal gut gemeint und im zweiten Batch den Variablennamen %Nr1% auf %Grenze% verändert - allerdings nur an einer Stelle - daher bitte Zeile 12 auf
if %%a geq %Grenze% (
korrigieren ...

Grüße
bastla
Bitte warten ..
Mitglied: weaslflink
17.01.2012 um 13:52 Uhr
*freu* immerhin hab ich schon mal bemerkt das was nicht stimmt :-P

neu getestet ---> nächster fehler

01.
C:\Users\pzhqch>set "FileType=pdf" 
02.
 
03.
C:\Users\pzhqch>set /a Grenze=4500 
04.
"0" kann syntaktisch an dieser Stelle nicht verarbeitet werden. 
05.
C:\Users\pzhqch>  if  gtr 0 ren "" "()"
Worauf bezieht sich den hierbei das 0?ich versuche es schon die ganze Zeit in dem Code finden
Bitte warten ..
Mitglied: bastla
17.01.2012 um 16:03 Uhr
Hallo weaslflink!

Lass am Ende der Zielangaben (also X:\ und Y:\) jeweils den "\" weg - ich ändere das oben auch entsprechend ...

Grüße
bastla
Bitte warten ..
Mitglied: weaslflink
18.01.2012 um 08:39 Uhr
Morgen Bastla,

an dieser Stelle nochmal vielen Dank für deine Hilfe.

Habe wie du gesagt hast es geändert jedoch besteht weiterhin der Fehler

Hier der komplette Code:

01.
echo on & setlocal  
02.
echo Dateien werden kopiert. Das Fenster schliesst auotmatisch !  
03.
 
04.
set "SrcDir=%userprofile%\Documents\MyScans"  
05.
set "Dest1=G:"  
06.
set "Dest2=F:" 
07.
set "FileType=pdf"  
08.
set /a Grenze=4500 
09.
 
10.
for /f "tokens=1* delims=_" %%a in ('dir /b /a:-d "%SrcDir%\*_*.%FileType%" 2^>NUL') do (  
11.
if %%a geq %Grenze% ( 
12.
  call :RenOldVersion "%Dest2%\%%a\%%a_%%b"  
13.
  xcopy "%SrcDir%\%%a_%%b" "%Dest2%\%%a\%%a_%%b*" > NUL  
14.
) else (  
15.
  call :RenOldVersion "%Dest1%\%%a\%%a_%%b"  
16.
  xcopy "%SrcDir%\%%a_%%b" "%Dest1%\%%a\%%a_%%b*" > NUL  
17.
 
18.
echo del "%SrcDir%\*_*.%FileType%"  
19.
 
20.
exit /b 
21.
  
22.
:RenOldVersion  
23.
  set /a "NumFiles=0"  
24.
  
25.
  for /f "tokens=1 delims=:" %%c in ('dir /b /a:-d "%~dpn1*%~x1" 2^>NUL ^| findstr /n "^"') do (  
26.
    set /a "NumFiles=%%c"  
27.
  )  
28.
  
29.
  if %NumFiles% gtr 0 ren "%~1" "%~n1(%NumFiles%)%~x1" 
30.
 
31.
 
32.
exit /b
Bitte warten ..
Mitglied: icsat
18.01.2012 um 10:26 Uhr
Hallo weaslflink,

der Fehler bezieht sich auf Zeile 29.

Ich habe das Problem zwar noch nicht wirklich erkannt, aber ...
... die Variable "NumFiles" ist nicht definiert
... die übergebene Datei scheint auch nicht i.O. zu sein

Prüf doch mal, was in Zeile 12 an die SubRoutine übergeben wird.


Gruß icsAT
Bitte warten ..
Mitglied: weaslflink
18.01.2012 um 10:49 Uhr
Hallo icsAT,

Numfiles ist doch in Zeile 23 definiert mit "set /a NumFiles=0"

:RenOldVersion soll überprüfen ob die Dateien, welche kopiert werden, in dem Zielordner schon vorhanden sind und an diese am ende des Namens ein (1), (2), (3), ... dranhängen soll.

Hat vorher einwandfrei geklappt nur leider jetzt nicht mehr.

Was meinst du denn mit "... die übergebene Datei scheint auch nicht i.O. zu sein´" ?
Bitte warten ..
Mitglied: icsat
18.01.2012 um 11:28 Uhr
Hallo weaslflink,

ich sehe, dass "NumFiles" in Zeile 23 gesetzt wird. Deine Ausgabe deutet aber darauf hin, dass "NumFiles" nicht definiert ist. Also liegt die Vermutung nahe, dass in Zeile 26 die Variable gelöscht wird. Das wiederum ergibt für mich auf den ersten Blick keinen Sinn, da das nur passieren kann, wenn %%c leer ist, was imho aber nicht passieren sollte.

Daher meine Frage mit dem Übergabewert in Zeile 12.
Was passiert (wird ausgegeben), wenn Du das Ende wie folgt änderst:
01.
:RenOldVersion  
02.
   echo Uebergabewert: %1 
03.
   set /a "NumFiles=0"  
04.
   for /f "tokens=1 delims=:" %%c in ('dir /b /a:-d "%~dpn1*%~x1" 2^>NUL ^| findstr /n "^"') do (  
05.
      echo set /a "NumFiles=%%c"  
06.
   )  
07.
   if %NumFiles% gtr 0 ren "%~1" "%~n1(%NumFiles%)%~x1" 
08.
   echo hier abbrechen 
09.
   pause 
10.
exit /b
Die Pause zum abbrechen, da kein dranhängen erfolgen würde.


Gruß icsAT
Bitte warten ..
Mitglied: weaslflink
18.01.2012 um 11:57 Uhr
Hi icsAT,

habe wie du mir gesagt hast :RenOldVersion verändert. (copy - past)

hier was mit die console ausgibt. Was ich noch dazu sagen möchte ist das ich die Batch datei in der console öffne also mit

01.
start %userprofile%\Documents\MyScans\test3.bat

01.
C:\Users\pzhqch>echo on   & setlocal 
02.
 
03.
C:\Users\pzhqch>echo Dateien werden kopiert. Das Fenster schliesst auotmatisch ! 
04.
 
05.
Dateien werden kopiert. Das Fenster schliesst auotmatisch ! 
06.
 
07.
C:\Users\pzhqch>set "SrcDir=C:\Users\pzhqch\Documents\MyScans" 
08.
 
09.
C:\Users\pzhqch>set "Dest1=G:" 
10.
 
11.
C:\Users\pzhqch>set "Dest2=F:" 
12.
 
13.
C:\Users\pzhqch>set "FileType=pdf" 
14.
 
15.
C:\Users\pzhqch>set /a Grenze=4500 
16.
"0" kann syntaktisch an dieser Stelle nicht verarbeitet werden. 
17.
C:\Users\pzhqch>   if  gtr 0 ren "" "()" 
18.
 
Noch eine Frage: Worauf bezieht sich denn das "%%c" ?

Mir kommt es so vor als würde er deine Echo's einfach überspringen.

Wenn ich die Batch via Doppelklick öffne schließt sie Sich direkt wieder. Deshalb öffne ich es über die console.
Bitte warten ..
Mitglied: icsat
18.01.2012 um 12:48 Uhr
Hallo weaslflink,

das "%%c" enthält in jedem Durchlauf das jeweils aktuelle Ergebnis der For-Schleife.

Wenn Du Dir Dein Ergebnis ansiehst sollte schnell (wobei ich da in Deinem Post von gestern auch nicht drüber gestolpert bin) klar werden, wo das Problem ist. Nach Zeile 8 folgt Zeile 29. Warum? Du hast weder das "FOR" noch das "ELSE" vom "IF" korrekt mit ")" beendet!

Also füge die beiden beendenden Klammern wieder ein und der Ablauf sollte wieder passen. Ich denke die Klammern sind Dir und bastla im Laufe der Zeit "verloren" gegangen


Gruß icsAT
Bitte warten ..
Mitglied: weaslflink
18.01.2012 um 13:18 Uhr
Hi IcsAT,

leider bin ich nicht soooo gut in batch das mir das so schnell klar wird bzw ich das sehe wo ich die ")" einfügen muss.

Wärest du so nett und könntest den richtigen Code mit den ")" hier posten ?

Vielen Dank !

Gruß weaslflink
Bitte warten ..
Mitglied: icsat
18.01.2012 um 13:30 Uhr
Hallo weaslflink,

hier ungetestet der Code aus Deinem Post vom 18.01.2012, 08:39:38 Uhr ergänzt um die schließenden Klammern:
01.
echo on & setlocal  
02.
echo Dateien werden kopiert. Das Fenster schliesst auotmatisch !  
03.
 
04.
set "SrcDir=%userprofile%\Documents\MyScans"  
05.
set "Dest1=G:"  
06.
set "Dest2=F:" 
07.
set "FileType=pdf"  
08.
set /a Grenze=4500 
09.
 
10.
for /f "tokens=1* delims=_" %%a in ('dir /b /a:-d "%SrcDir%\*_*.%FileType%" 2^>NUL') do (  
11.
   if %%a geq %Grenze% ( 
12.
      call :RenOldVersion "%Dest2%\%%a\%%a_%%b"  
13.
      xcopy "%SrcDir%\%%a_%%b" "%Dest2%\%%a\%%a_%%b*" > NUL  
14.
   ) else (  
15.
      call :RenOldVersion "%Dest1%\%%a\%%a_%%b"  
16.
      xcopy "%SrcDir%\%%a_%%b" "%Dest1%\%%a\%%a_%%b*" > NUL  
17.
18.
19.
 
20.
echo del "%SrcDir%\*_*.%FileType%"  
21.
 
22.
 
23.
exit /b 
24.
 
25.
  
26.
:RenOldVersion  
27.
 
28.
   set /a "NumFiles=0"  
29.
  
30.
   for /f "tokens=1 delims=:" %%c in ('dir /b /a:-d "%~dpn1*%~x1" 2^>NUL ^| findstr /n "^"') do set /a "NumFiles=%%c"  
31.
  
32.
   if %NumFiles% gtr 0 ren "%~1" "%~n1(%NumFiles%)%~x1" 
33.
 
34.
goto :eof

Gruß icsAT
Bitte warten ..
Mitglied: weaslflink
18.01.2012 um 14:10 Uhr
ah super

Es funktioniert.

Hiebei geht ein großer Dank an Bastla und icsAT für eure super Hilfe.

Danke Danke Danke !
Bitte warten ..
Mitglied: bastla
18.01.2012 um 14:38 Uhr
Hallo icsAT!

Danke für's Aufräumen ...

Grüße
bastla
Bitte warten ..
Mitglied: icsat
18.01.2012 um 15:09 Uhr
Hallo bastla,

gerne doch.

Er ist steht's bemüht in diesem Forum nicht nur fleissig Experten-Wissen aufzusaugen, sondern auch hin und wieder, wenn die knappe Zeit es denn mal zu lässt, etwas Basis-Wissen weiterzugeben, damit die Experten dann genügend Zeit haben sich um seine Probleme zu kümmern


Gruß icsAT
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 Batch Änderungsdatum von Dateien vergleichen und ältere löschen (10)

Frage von 129528 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 ...

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 ...