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, 4367 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 ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(3)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

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

Frage von brause1701 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Batch & Shell
gelöst Alle Ordner bis auf die letzten 3 per Batch löschen (5)

Frage von Stefan2733 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (24)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Netzwerke
Abisolierwerkzeug (11)

Frage von SarekHL zum Thema Netzwerke ...

Hyper-V
Langsames Netzwerk i210 LAN Karte (11)

Frage von Akcent zum Thema Hyper-V ...

Windows 10
Welches OS für Firmengeräte? (10)

Frage von MarkusVH zum Thema Windows 10 ...