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

Per CMD Sortieren

Frage Entwicklung Batch & Shell

Mitglied: Spidi-25

Spidi-25 (Level 1) - Jetzt verbinden

02.07.2010 um 16:27 Uhr, 3399 Aufrufe, 4 Kommentare

Hallo bastla

ich hätte eine Bitte an dich,vor Zeiten hast du mir eine tolle CMD erstellt http://www.administrator.de/index.php?content=139800


meine frage ist, was muss an der CMD geändert werden damit folgendes gemacht werden kann:


z.B. es befinden sich Dateien im Ordner

01.
4174_100_020_00.dwg 
02.
4174_100_020_01.dwg 
03.
4174_100_020_02.dwg 
04.
4174_100_021_00.dwg 
05.
4174_100_021_01.dwg 
06.
4174_100_021_02.dwg 
07.
4174_100_025_01.dwg
nach der CMD Ausführung


Folgende Dateien behalten
01.
4174_100_020_02.dwg 
02.
4174_100_021_02.dwg 
03.
4174_100_025_01.dwg
und folgende Dateien in den Ordner alt verschieben
01.
4174_100_020_00.dwg 
02.
4174_100_020_01.dwg 
03.
4174_100_021_00.dwg 
04.
4174_100_021_01.dwg

im Prinzip Daten mit dem höchsten Index sollen bleiben (sie unten) Rest nach alt verschieben, dabei sind die Stellen 10 bis 12 zu berücksichtigen

(xxxx_xxx_xxx_Index)


habe es mit folgendem Code probiert

01.
@echo off & setlocal  
02.
 
03.
 
04.
for %%t in (DWG) do (  
05.
    for /f %%i in ('dir /b /on /a-d *_*_*_*.%%t') do (  
06.
 
07.
        for /f "tokens=1-4 delims=_" %%a in ("%%~ni") do (  
08.
            md "%Ziel%%%a_%%b" 2>nul 
09.
            md "alt" 2>nul  
10.
            move "%%i" "%Ziel%%%a_%%b\">nul  
11.
            for /f "skip=1 delims=" %%x in ('dir /b /o-n /a-d "%Ziel%%%a_%%b\%%a_%%b_%%c_*%%~xi"') do move "%Ziel%%%a_%%b\%%x" "alt"  
12.
        )  
13.
    )  
14.
)  
15.
popd



Damit wird außer des alt Ordners in den auch die alten Daten verschoben werden, wie gewollt , auch noch ein Ordner zu viel angelegt und die Dateien die ich behalten möchte hinein geschoben.


Ich bedanke mich im voraus für die hilfe!
Mitglied: bastla
02.07.2010 um 18:26 Uhr
Hallo Spidi-25!

Der Ansatz war schon ziemlich gut - so sollte es dann eigentlich klappen:
01.
for %%t in (DWG) do ( 
02.
    for /f %%i in ('dir /b /on /a-d *_*_*_*.%%t') do (  
03.
        for /f "tokens=1-4 delims=_" %%a in ("%%~ni") do (  
04.
            md "%Ziel%%%a_%%b" 2>nul 
05.
            md "alt" 2>nul 
06.
            move "%%i" "%Ziel%%%a_%%b\">nul  
07.
        )  
08.
09.
    for /d %%v in (%Ziel%*.*) do ( 
10.
        for %%i in ("%%v\*_*_*_*.%%t") do ( 
11.
            for /f "tokens=1-4 delims=_" %%a in ("%%~ni") do ( 
12.
                for /f "skip=1 delims=" %%x in ('dir /b /o-n /a-d "%%v\%%a_%%b_%%c_*%%~xi"') do move "%%v\%%x" "alt"  
13.
14.
15.
16.
)
[Edit] Korrektur wegen falscher "Ansiedelung" des "alt"-Ordners vorgenommen [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: Spidi-25
02.07.2010 um 22:33 Uhr
Hallo bastla

Eigendlich bekomme ich das gleiche ergebnis wie mit dem Code von meinem schreiben!

Kann man nicht die Zeilen 04,06, (Ziel) weglassen, den Code so erstellen damit kein Unterordner außer der alt Ordner erstellt wird und die Daten mit dem kleineren Index hinein geschoben werden?

Grüße

Spidi-25
Bitte warten ..
Mitglied: bastla
02.07.2010 um 22:48 Uhr
Hallo Spidi-25!

Dann sollte tatsächlich
01.
@echo off & setlocal  
02.
md "alt" 2>nul 
03.
for %%t in (DWG) do ( 
04.
    for %%i in ("*_*_*_*.%%t") do ( 
05.
        for /f "tokens=1-4 delims=_" %%a in ("%%~ni") do for /f "skip=1 delims=" %%x in ('dir /b /o-n /a-d "%%a_%%b_%%c_*%%~xi"') do move "%%x" "alt\"  
06.
07.
)
genügen ...

Grüße
bastla
Bitte warten ..
Mitglied: Spidi-25
02.07.2010 um 23:14 Uhr
Perfekt, genau das habe ich gesucht vielen vielen dank!!!!!!!!!!!!!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows Server
Win 2008 R2 - CMD bleibt stehen (4)

Frage von emeriks zum Thema Windows Server ...

Windows 10
Remotedesktop beim Client via CMD beenden (3)

Frage von Rolf-Hanka.ITD zum Thema Windows 10 ...

Batch & Shell
gelöst Mit Powershell schwarzes CMD-Fenster unterdrücken? (4)

Frage von Yauhun zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel Makro zum Sortieren von Spalten an größeres Dokument Anpassen (2)

Frage von Rolfor zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (13)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...