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
GELÖST

Dateinamen per Batch um x Zeichen am Anfang kürzen

Frage Entwicklung Batch & Shell

Mitglied: simonavenia

simonavenia (Level 1) - Jetzt verbinden

12.10.2009 um 12:41 Uhr, 12284 Aufrufe, 3 Kommentare

Hallo allerseits,

ich habe ein Problem und das geht so:

Ein Programm erzeugt mir Dateien, die z. B. folgendermaßen aussehen:

94512_09-10-10_10-32-50.txt

Dabei sind die ersten fünf Ziffern ein mehr oder weniger willkürlicher Zahlencode, den keiner brasucht, und nach den Unterstrichen folgen Datum und Uhrzeit. Letzteres ist auch ganz praktisch, denn so könnte man die Dateien schon chronologisch sortiert in einem Ordner verwalten - aber die ersten fünf Zeichen verhindern das leider.

Ich suche also nach einer Möglichkeit, die Datei mittels Batchdatei von den ersten sechs Zeichen zu befreien.

Viele Grüße,

Simon
Mitglied: Woolfsmann
12.10.2009 um 13:37 Uhr
Hi,

ich weiß du suchst eine Batchlösung, die kann ich nicht anbieten aber sollte sich wiedererwartend keiner finden der das eben Hier reinschreibt. Kann ich ne Lösung in Perl anbieten.

01.
#/usr/lib/perl -w 
02.
use strict; 
03.
my($pfad,$datei,@dir); 
04.
$pfad="."; 
05.
 
06.
opendir(DIR,$pfad)|| die $!; 
07.
@dir=grep /\.txt/, readdir(DIR); 
08.
foreach $datei (@dir) 
09.
10.
	if ($datei =~ /(\d{5}_)(.*\.txt)/) 
11.
12.
		rename($datei,$2) || die "Fehler beim Umbenennen: $!"; 
13.
14.
}
Bitte warten ..
Mitglied: Biber
12.10.2009 um 14:01 Uhr
Moin simonavenia,

wilkommen im Forum.
eine Alternative wäre ein Oneliner vom CMD-Prompt:
01.
(=13:58:44  D:\temp=) 
02.
>for %i in (*_??-??-??_*.txt) do @for /f "delims=_ tokens=2,3*" %j in ("%i") do @echo ren "%i" "%j_%k" 
03.
ren "94512_09-10-10_10-32-50.txt" "09-10-10_10-32-50.txt"
[Das ">" vor dem FOR nicht mit eingeben; das ist mein CMD-Prompt]
Der Schnipsel setzt voraus, dass du dich im Verzeichnis der umzubenamsenden Dateien befindest.

Grüße
Biber
Bitte warten ..
Mitglied: simonavenia
12.10.2009 um 14:56 Uhr
Hallo Woolfsmann, hallo Biber,

ich hab keine Ahnung von Perl und mal die CMD-Variante ausprobiert. Wenn ich das wie befohlen in dem Ordner mit der Datei eingebe, wird zwar genau der Text gepromptet, den Biber in Zeile 3 stehen hat - aber mit der Datei passiert nix! Was mach ich falsch?

Grüße,

Simon

EDIT - okay, bin selbst drauf gekommen. Man entfernt also das @echo ;o) Ich hab außerdem mal aus allen % ein %% gemacht und das dann so in ein Batch eingebaut - funktioniert wunderbar!

Vielen Dank dafür!

Kleiner Nachschlag: Was müsste man denn tun, um die 09 am Anfang in 2009 zu ändern?

EDIT - hab jetzt mal mein Gehirn angestrengt und es selbst glöst. Vielen Dank nochmal für den Denkanstoß!
Bitte warten ..
Ähnliche Inhalte
Windows 10
gelöst Vbs oder batch zum Ändern von Dateinamen ab Zeichenkette (13)

Frage von vbaGast zum Thema Windows 10 ...

Sonstige Systeme
Batch Dateinamen zerlegen (5)

Frage von Mummel zum Thema Sonstige Systeme ...

Batch & Shell
gelöst Dateiname über Batch ändern (6)

Frage von c64b311ee9 zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateiname entsprechend einem um x-Ebenen übergeordeten Ordnernamen umbenennen (3)

Frage von Booster07 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (59)

Frage von pjrtvly zum Thema Internet ...

DSL, VDSL
VDSL Signal via PowerLine an Fritzbox - Möglich? (19)

Frage von Seichobob zum Thema DSL, VDSL ...

Windows Server
Benutzer sperrt sich immer wieder im Active Directory Contoller (18)

Frage von Kirdy1301 zum Thema Windows Server ...