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

Ordnernamen und Nummerierung von Dateien oneliner?

Frage Entwicklung Batch & Shell

Mitglied: waldgnarf

waldgnarf (Level 1) - Jetzt verbinden

14.06.2008, aktualisiert 15.06.2008, 4883 Aufrufe, 5 Kommentare

Hallo,
gibt es eine Möglichkeit ne fortlaufende Nummerierung nach Größe von Datein die sich in mehreren Ordnern befinden mit dem jeweiligen Ordnernamen davor in einen oneliner zu bekommen?

- der hier schafft das mit dem Ordnernamen nicht und hat Probleme wenn die Dateien ein Leehrzeichen haben
01.
@echo off 
02.
setlocal EnableExtensions 
03.
setlocal EnableDelayedExpansion 
04.
set /a X=1000 & for /f %%I in ('dir /b /O-s *.txt') do set /a "X+=1">nul & rename %%I "TEXT !X:~-3!%%~XI"
- und dieser benennt nicht der Größe nach um, also z.B. 1,0kb (Name 001.txt); 1,2kb (Name 002.txt) ...
01.
@echo off 
02.
setlocal EnableExtensions 
03.
setlocal EnableDelayedExpansion 
04.
for /f "delims=" %%O in ('dir /B /AD') do set /a X=1000 && for %%I in (%%O\*.txt) do @Set /a "X+=1">nul & rename "%%I" "%%O !X:~-3!%%~XI"

Grüße waldgnarf


[Edit Biber 17.6.2008] Ich gehe auch mal davon aus, dass die Betonung auf "Suche Lösung" und nicht "Suche oneliner" lag. Lösung liegt vor. Beitrag geschlossen. [/Edit]
Mitglied: bastla
14.06.2008 um 19:25 Uhr
Hallo waldgnarf!

Wenn Du auf "oneliner" bestehst, wirst Du vermutlich auf Biber warten müssen ...

... als "fewliner" könnte es so gehen:
01.
@echo off & setlocal EnableDelayedExpansion 
02.
set F=%temp%\filelist.txt 
03.
if exist %F% del %F% 
04.
for /d %%o in (*.*) do for %%i in ("%%o\*.txt") do set /a G=100000000+%%~zi & echo !G!$%%o$%%i>>%F% 
05.
set /a X=1000 
06.
for /f "tokens=2-3 delims=$" %%i in ('sort %F%') do set /a X+=1 & echo ren "%%~i\%%~j" "%%~i !X:~-3!%%~xj"
Das "echo" vor dem "ren" soll übrigens für stressfreies Testen sorgen, da so die jeweiligen "ren"-Befehle nur angezeigt, aber nicht ausgeführt werden - wenn Du das "echo" weg lässt, wird tatsächlich umbenannt.

Falls in den Ordner- oder Dateinamen ein "$" vorkommen sollte, ersetze dieses Zeichen in den Zeilen 4 und 6 durch ein Sonderzeichen, das in den Ordner- bzw Dateinamen nicht enthalten ist (etwa "§").

Grüße
bastla

[Edit] Definiertes Trennzeichen "$" eingefügt. [/Edit]
Bitte warten ..
Mitglied: waldgnarf
14.06.2008 um 20:15 Uhr
der tuts auch, auf jeden Fall schonmal vielen Dank für deine Hilfe.

Gruß waldgnarf
Bitte warten ..
Mitglied: miniversum
15.06.2008 um 12:21 Uhr
Ausgehend vom zweiten Batch den Du gepostet hast kannst Du es ja mal damit versuchen:
01.
@echo off 
02.
setlocal EnableExtensions 
03.
setlocal EnableDelayedExpansion 
04.
for /f "delims=" %%O in ('dir /B /AD /OS') do set /a X=1000 && for %%I in (%%O\*.txt) do @Set /a "X+=1">nul & rename "%%I" "%%O !X:~-3!%%~XI"
Die Änderung besteht in der Sortierreihenfolge des Dir Befehls. Dort wurde beim
dir /B /AD
noch der Parameter /OS angefügt welcher Die Dateiauflistung der Größe nach sortiert:
dir /B /AD /OS
Bitte warten ..
Mitglied: bastla
15.06.2008 um 12:25 Uhr
@miniversum

... was allerdings daran scheitert, dass nur innerhalb der Verzeichnisse nach Größe sortiert wird, nicht aber übergreifend (die Idee hatte ich nämlich auch zuerst).

Bei einem
01.
dir /s /-c /a-d *.txt|findstr /i /e ".txt"|sort /+20
fehlt dann wieder der Ordner (was hinsichtlich "oneliner"-Tauglichkeit doch etwas stört und auch noch die Frage aufwirft, ob auch Unter-Unterordner zu berücksichtigen wären).

Grüße
bastla
Bitte warten ..
Mitglied: waldgnarf
15.06.2008 um 14:25 Uhr
Hallo, ist nicht schlimm wenns kein oneliner wird, und keine Unter-Unterordner.
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (24)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Windows Server
Exchange HyperV Prozessorlast (18)

Frage von theoberlin zum Thema Windows Server ...

Hardware
16-20 Port POE Switch mit VLAN (18)

Frage von thomasreischer zum Thema Hardware ...