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, 4349 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
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst 1 PDF duplizieren und umbenennen nach CSV mittels Batch (5)

Frage von Kalisser zum Thema Batch & Shell ...

Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

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