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, 4374 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 Mehrere Grafiken mit Batch umbenennen (3)

Frage von SeraphinaJ zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix (6)

Frage von brause1701 zum Thema Batch & Shell ...

Microsoft
Batch kombiniert mit PDFCreator

Frage von Sascha123456 zum Thema Microsoft ...

Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(2)

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
Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

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

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...