Top-Themen

Aktuelle Themen (A bis Z)

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 Umbenennen von TXT dateien mit größe x oder größer per Batch

Mitglied: Paximperia

Paximperia (Level 1) - Jetzt verbinden

20.05.2008, aktualisiert 21.05.2008, 6745 Aufrufe, 4 Kommentare

Ich möchte bestimmte TXT Dateien nach Dateigröße filtern und nur die,welche der göße x oder größer x sind umbenennen.

Meine Testshell sieht wie folgt aus.Nur mache ich irgendwie einen Denkfehler da bei mir immer alle txt Dateien (also auch die welche kleiner x sind ) umbenannt werden.
Würde mich über denkhilfe freuen
01.
rem pipe Datum Uhrzeit 
02.
 
03.
date /t >> c:\umbenennen\copy.log 
04.
time /t >> c:\umbenennen\copy.log 
05.
 
06.
rem abfrage Dateigröße 
07.
 
08.
for %%F in (C:\umbenennen\*log*.txt) do set groesse=%%~zF   
09.
echo prüfen >> c:\umbenennen\copy.log 
10.
if %groesse% geq 1024 goto start   
11.
echo sprung start >> c:\umbenennen\copy.log 
12.
if %groesse% lss 1024 goto nde    
13.
echo sprung ende  >> c:\umbenennen\copy.log 
14.
 
15.
rem ENDE 
16.
 
17.
:nde 
18.
echo keine Datei mit grösse x vorhanden >> c:\umbenennen\copy.log 
19.
exit 
20.
 
21.
 
22.
rem zähler setzen !! 
23.
:start 
24.
echo dateien umbenannt >> c:\umbenennen\copy.log 
25.
SET Zaehler=0 
26.
SET Pfad=c:\umbenennen\*log.old* 
27.
 
28.
rem umbenennung der dateein *.log.old* 
29.
 
30.
:umbenennen 
31.
rem cd %Pfad%\umbenennen 
32.
ren *log*.txt *log*.old%Zaehler%  
33.
goto Ums  
34.
 
35.
:ende 
36.
 
37.
rem zähler einen hochsätzen falls *log.oldx schon vorhanden 
38.
:ums 
39.
set /a Zaehler+=1 >> c:\umbenennen\copy.log  
40.
ren *log*.txt *log*.old*%Zaehler%  
41.
IF EXIST %Pfad%%Zaehler% goto ums  
42.
echo erfolgreich >> c:\umbenennen\copy.log 
43.
 
44.
:ende

Mfg

Stephan


[Edit Biber] Code in <code>-Tags gesetzt [/Edit]
Mitglied: BigWumpus
20.05.2008 um 16:22 Uhr
PocketD von Pocketware war so ein DOS-Tool, das alles konnte.
Leider hat es wohl Probleme mit langen Dateinamen.

In 4DOS konnte man sowas auch leicht programmieren, weil es sehr starke Befehle dafür gab.
Bitte warten ..
Mitglied: Biber
20.05.2008 um 17:23 Uhr
Moin Paxi,

im Moment läufst du zwar mit der FOR-Anweisung über alle Dateien mit einer Schleife und prüfst/SETzt je Datei die %groesse%....

Aber alles andere ist NACH der (gedanklichen) FOR-Schleife und findet gemäß diesen Regeln statt:
  • Wenn zufällig bei der letzten Datei in der Liste herauskommt "größer gleich x", dann werden halt danach alle Dateien umbenannt.
  • Wenn zufällig bei der letzten Datei in der Liste herauskommt " kleiner x", dann wird danach keine einzige Datei umbenannt.

Außerdem solltest Du eher mit "Call :subblock" statt mit "goto subblock" arbeiten, da Du dann paramter 8z.B. den dateinamen übergeben kannst.
Ändere die FOR-Anweisung so ab:
01.
... 
02.
 
03.
for %%F in (C:\umbenennen\*log*.txt) do If %%~zF geq 1024 call :RenameFile "%%F" 
04.
goto :eof 
05.
 
06.
... 
07.
:RenameFile parameter1 ist der Dateiname 
08.
... [Zählermimik.... umbenamsen....] 
09.
... 
10.
:: back to caller mit goto :eof 
11.
goto :eof  
Grüße
Biber
Bitte warten ..
Mitglied: bastla
20.05.2008 um 17:32 Uhr
Hallo Paximperia und willkommen im Forum!

Dein Denkfehler bezieht sich zunächst auf die Funktionsweise der "for"-Schleife - Du überprüfst eigentlich nur die letzte Datei der gesamten Liste, da alle folgenden Befehle erst ausgeführt werden, wenn alle Dateien in der "for"-Schleife "durch" sind. Die Lösung ist das Verzweigen in ein Unterprogramm (siehe unten).

Weiters werden durch die Angabe von "*log*.txt" immer alle Textdateien mit dem Namensbestandteil "log" erfasst - um nur einzelnen Dateien einen neuen Namen zu geben, musst Du diese gezielt ansprechen; im Beispiel unten kommt jede Datei aus der Schleife als %1 im Unterprogramm an.

Leichter les- und vor allem wartbar wird ein Batch durch die Verwendung von Variablen - diese kannst Du übersichtlich am Anfang mit Werten füllen.

Unter Berücksichtigung dieser Überlegungen könnte Dein Batch etwa so aussehen (wobei natürlich Bibers Schreibweise oben kompakter ist):
01.
@echo off & setlocal 
02.
set "log=c:\umbenennen\copy.log" 
03.
set "Pfad=c:\umbenennen\*log*.txt" 
04.
set "old=.old" 
05.
set "gr=1024" 
06.
 
07.
if exist "%log%" del "%log%" 
08.
 
09.
rem pipe Datum Uhrzeit 
10.
date /t >>"%log%" 
11.
time /t >>"%log%" 
12.
 
13.
rem Zähler setzen !! 
14.
set Zaehler=0 
15.
 
16.
rem Alle Dateien einzeln durchgehen 
17.
for %%F in (%Pfad%) do call :Verarbeiten "%%F" 
18.
 
19.
if %Zaehler% gtr 0 ( 
20.
	echo %Zaehler% dateien umbenannt >> "%log%" 
21.
) else ( 
22.
	echo keine Datei mit mindestens %gr% Bytes vorhanden >> "%log%" 
23.
24.
goto :eof 
25.
 
26.
:Verarbeiten 
27.
rem Die Datei kommt als %1 an 
28.
set groesse=%~z1  
29.
echo prüfen >> "%log%" 
30.
if %groesse% lss %gr% echo %1 zu klein - sprung ende >> "%log%" & goto :eof 
31.
 
32.
:Hochzaehlen 
33.
set /a Zaehler+=1 
34.
if exist "%~1%old%%Zaehler%" goto :Hochzaehlen 
35.
echo Naechste Nummer: %Zaehler% >> "%log%" 
36.
 
37.
:Umbenennen 
38.
ren %1 "%~nx1%old%%Zaehler%" 
39.
echo erfolgreich: %1 -^> "%~nx1%old%%Zaehler%" >> "%log%" 
40.
goto :eof
Die Zählung der umbenannten Dateien stimmt nur beim ersten Mal (wenn sich noch keine umbenannten Dateien im Ordner befinden), ansonsten müsstest Du eine zusätzliche Zählvariable verwenden. Die Schreibweise mit ".old#" würde ich zwar anders gestalten, aber wenn's für Dich passt ...

Grüße
bastla
Bitte warten ..
Mitglied: Paximperia
21.05.2008 um 08:07 Uhr
Guten morgen

Vielen dank für Eure Antworten

Ich habe die Variante von bastla genommen und die Zählung angepasst.Damit habe ich eine gute Lösung.
Ich werde aber die Variante von Biber auch noch probieren (zum üben)

@ BigWumpus
Ich verwende lieber eine eigen Batch als irgendein Prog,aber trotzdem danke.

Mfg

Stephan
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Größe einer Datei per BATCH in eine TXT schreiben

gelöst Frage von marvinplBatch & Shell5 Kommentare

Hallo erstmal und danke, dass du meine Frage geöffnet hast. Ich möchte auf Servern von uns und unseren Kunden ...

Batch & Shell

Maximale Größe zu verarbeitender txt-Dateien mit Batch

Frage von Muck1303Batch & Shell5 Kommentare

Hallo zusammen, ich habe vor einigen Tagen begonnen mich in Batch einzuarbeiten und bin ein Neuling hier. Mein Ziel ...

Batch & Shell

Batch: Dateien mit gleicher Größe löschen

Frage von gb2407Batch & Shell5 Kommentare

Hallo Ich will mittels einer Batch-Datei Dateien mit gleicher Größe löschen. Ich komm momentan nicht weiter und hoffe, dass ...

Windows 7

TXT-Datei plötzlich 0 KByte groß

gelöst Frage von SebastianJuWindows 715 Kommentare

Hallo, ich hatte eine TXT-Datei in Bearbeitung als der Festplattenspeicher auf 0 Byte ging. Aus irgendeinem Grund total voll ...

Neue Wissensbeiträge
Backup

2016 - Restore mit WBAdmin - iSCSI Device als Sicherungsziel

Erfahrungsbericht von Henere vor 7 StundenBackup

Servus zusammen, was mich eben einige graue Haare gekostet hat Server 2016. Ich habe meinem Server eine weitere M2 ...

Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 2 TagenHumor (lol)5 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 2 TagenExchange Server7 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 3 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Heiß diskutierte Inhalte
Netzwerke
Netzwerk-Architektur mit VLANs
Frage von niLuxxNetzwerke43 Kommentare

Liebe Community, Ich hätte eine kurze Frage an euch. Ich werde in Kürze das Netzwerk unserer (sehr) kleinen Firma ...

Netzwerke
SSH - Wieso werde ich nach VPN Verbindung rausgeschmissen?
Frage von VernoxVernaxNetzwerke10 Kommentare

Hallo, ich habe es endlich geschafft mein Handy mit einer VPN Verbindung an meinen Router anzuschließen. Nach der Login ...

Microsoft
Ist es möglich ein reines Volume C Datenbackup in eine Hyper-V VM zu konvertieren?
Frage von Frank84Microsoft10 Kommentare

Hallo zusammen, ich habe hier ein Backup vorliegen, das ausschließlich das komplette C:\ Volume eines physischen Server 2012 enthält. ...

Windows Server
Freigaben per Default nur für Domänen-Benutzer
Frage von tierwoWindows Server8 Kommentare

Hallo gibt es eine Möglichkeit, einen Server 2016 so zu konfigurieren (z.B. per GPO), dass Freigaben die erstellt werden ...