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

Batch - Ordnername umbenennen, Ordnergröße anhängen am Ende des Namens

Frage Entwicklung Batch & Shell

Mitglied: Iceman

Iceman (Level 1) - Jetzt verbinden

31.03.2011, aktualisiert 13:16 Uhr, 4393 Aufrufe, 2 Kommentare

Hallo,

ich möchte im Ordnernamen die Ordnergröße am Ende des Namens anhängen

Wie im Titel schon beschrieben...

Batch - Ordnername umbenennen, Ordnergröße anhängen am Ende des Namens

Bsp.

ich habe hunderte Ordner die so aussehen.

Ordner ALT:
ZHLU00087_BLACK AND WHITE_2008_XCY_ght_0001
IJHK00098_SCHUH BALL FAHRRAD_JHG_kij_0002

Ordner NEU:
ZHLU00087_BLACK AND WHITE_2008_XCY_ght_0001_12.98GB
IJHK00098_SCHUH BALL FAHRRAD_JHG_kij_0002_252.87MB

So hätte ich sofort den Überblick, über die Größe und kann anschließend daraus Dateien (txt´s) anlegen die dann so aussehen.

(KB,MB,GB,TB hätte ich gern als Angabe, die aber Sinnvoll automatisch gewählt wird, je nach dem, wie groß die Datei ist.)

ich danke schon im voraus.

Gruß Ice

PS. das Gegenstück für die Datei http://www.administrator.de/index.php?content=163616
Mitglied: bastla
31.03.2011 um 14:20 Uhr
Hallo Iceman!

Wenn Du nur Textdateien anlegen willst, wozu dann die Ordner umbenennen?

Anyhow:
01.
@echo off & setlocal 
02.
set "Ordner=C:\TEST" 
03.
 
04.
set "Einh=B KB MB GB" 
05.
pushd "%Ordner%" 
06.
for /f "delims=" %%i in ('dir /b /ad') do call :ProcessFile "%%i" 
07.
popd 
08.
pause 
09.
goto :eof 
10.
 
11.
:ProcessFile 
12.
for /f "tokens=3" %%i in ('dir /s /w /-c %1^|findstr "Datei(en)"') do set "G=%%i" 
13.
:: bei mehr als 9-stelliger Dateigröße Sonderbehandlung 
14.
if "%G:~9%" neq "" goto :GBorMore 
15.
set /a D=0 
16.
set /a N=1 
17.
:Loop 
18.
if %G% lss 1000 goto :Done 
19.
set /a D=G %% 1000 
20.
set /a G=G/1000 
21.
set /a N+=1 
22.
goto :Loop 
23.
 
24.
:GBorMore 
25.
:: zuerst die letzten 6 Stellen abschneiden, 
26.
set "G=%G:~0,-6%" 
27.
:: dann die letzten 3 Stellen als Dezimalanteil behandeln und 
28.
set "D=%G:~-3% 
29.
::  den Teil davor als ganzzahligen Anteil festlegen 
30.
set "G=%G:~0,-3% 
31.
:: sowie die Einheit auf GB setzen 
32.
set E=4 
33.
 
34.
:Done 
35.
for /f "tokens=%N%" %%i in ("%Einh%") do set "E=%%i" 
36.
:: im neuen Namen nur die ersten beiden Stellen des Dezimalanteils verwenden 
37.
set "NameNeu=%~n1_%G%.%D:~0,2%%E%%~x1" 
38.
echo ren %1 "%NameNeu%" 
39.
goto :eof
Aber da jetzt ja ohnehin schon "dir" verwendet wird, lässt sich das auch noch etwas kürzer schreiben:
01.
@echo off & setlocal 
02.
set "Ordner=C:\TEST" 
03.
 
04.
pushd "%Ordner%" 
05.
for /f "delims=" %%i in ('dir /b /ad') do call :ProcessFile "%%i" 
06.
popd 
07.
pause 
08.
goto :eof 
09.
 
10.
:ProcessFile 
11.
for /f "tokens=3-7 delims=. " %%a in ('dir /s /w %1^|findstr "Datei(en)"') do ( 
12.
    set "G=%%a" 
13.
    set "D=%%b" 
14.
    if "%%b"=="Bytes" (set "D=000" & set "E=B") 
15.
    if "%%c"=="Bytes" set "E=KB" 
16.
    if "%%d"=="Bytes" set "E=MB" 
17.
    if "%%e"=="Bytes" set "E=GB" 
18.
    if "%%f"=="Bytes" set "E=TB" 
19.
20.
:: im neuen Namen nur die ersten beiden Stellen des Dezimalanteils verwenden 
21.
set "NameNeu=%~n1_%G%.%D:~0,2%%E%%~x1" 
22.
echo ren %1 "%NameNeu%" 
23.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Skyemugen
31.03.2011 um 14:40 Uhr
Aloha,

Zitat von Iceman:
ich habe hunderte Ordner die so aussehen.
Und ich hoffe, es gibt keine Verknüpfungen zu denen ...
So hätte ich sofort den Überblick, über die Größe
... die sich häufig ändern wird ...
und kann anschließend daraus Dateien (txt´s) anlegen die dann so aussehen.
... wo wir dann bei bastlas Einspruch wären: Warum Ordner umbenennen?
(KB,MB,GB,TB hätte ich gern als Angabe, die aber Sinnvoll automatisch gewählt wird, je nach dem, wie groß die Datei der Ordner ist.)
Und wer wählt sinnvoll, wann das Umbenennen immer wieder aktualisiert wird? (ändern sich eigentlich deine Dateien auch mal [Bearbeitung von Bildern o.Ä.)

Habe mich insgeheim bei dem anderen Thread schon gefragt: Warum macht/will man so etwas? =)

greetz André

edit: ... als zweite for-Schleife im Prozess selbst ... natürlich *rolleyes* fragt mich bloß nicht, was ich heute versucht habe *lmw*
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateiname entsprechend einem um x-Ebenen übergeordeten Ordnernamen umbenennen (3)

Frage von Booster07 zum Thema Batch & Shell ...

Batch & Shell
Ordnernamen aus Dateinamen erstellen (1)

Frage von Dr.Byte zum Thema Batch & Shell ...

Batch & Shell
gelöst Mehrere Grafiken mit Batch umbenennen (3)

Frage von SeraphinaJ zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Datei: PDF Dateien verschieben, umbenennen und löschen (4)

Frage von F0rcehunter zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
gelöst Raid-Controller (Areca) Datenverlust trotz R5 (16)

Frage von sebastian2608 zum Thema Festplatten, SSD, Raid ...

Server-Hardware
HP ProLiant DL380 G7, POST Error: 1785-Drive Array not Configured (10)

Frage von Paderman zum Thema Server-Hardware ...

Windows Server
Drucker per GPO auf Userebene freigeben (9)

Frage von Stefan007 zum Thema Windows Server ...

Microsoft Office
gelöst Office 365 Pro Domäne einrichten OHNE Webseite (9)

Frage von thklemm zum Thema Microsoft Office ...