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

Dateiname kürzen

Frage Entwicklung Batch & Shell

Mitglied: drifting

drifting (Level 1) - Jetzt verbinden

22.11.2009, aktualisiert 14:49 Uhr, 6209 Aufrufe, 6 Kommentare, 1 Danke

Hallo,

ich habe eine Menge Textdateien mit sehr langen Dateinamen. Ich möchte einen Batch schreiben, der mir die letzten 18 Zeichen aus dem Dateinamen rauslöscht. Mein bisheriger Versuch sieht folgendermaßen aus:

for %%i in ("%CD%\*.txt") do (
set "Name=%%i"
set "newname=%Name:~0,-18%"
rename "%Name%" "%newname%"
)

leider funktioniert das nicht und ich weiß nicht wieso. Ich wäre dankbar, wenn mir jemand helfen könnte, meine Batcherfahrung ist nämlich sehr begrenzt.

Grüße,

drifting
Mitglied: 60730
22.11.2009 um 15:20 Uhr
Servus,

in einer "for" schleife mag set nicht so - wie es soll.
siehe:
01.
for %%i in ("%CD%\*.txt") do ( 
02.
set "Name=%%i" 
03.
set "newname=%Name:~0,-18%" 
04.
echo "%Name%" -"%Newname%" 
05.
rename "%Name%" "%newname%" 
06.
)
Das echo bleibt "leer" - bzw Echo on kommt.

setlocal enabledelayedexpansion
und ansattt den beiden
%%
diese nutzen
!!

Oder mit einer "Temporären" batch den Kram auffangen - ich hatte neulich auch wieder so einen fall, wo es auch mit gesetztem delayedexpansion nicht wollte..

01.
if exist temp.cmd del temp.cmd 
02.
for %%i in ("%CD%\*.txt") do ( 
03.
echo set "newname=%%i:~0,-18%%" >>temp.cmd 
04.
echo rename "%%i" "%%newname%%" >>temp.cmd 
05.
06.
temp.cmd

Gruß
Bitte warten ..
Mitglied: miniversum
22.11.2009 um 17:57 Uhr
Oder, ohne temponäte datei, in einer unterprozedur:
01.
for %%i in ("%CD%\*.txt") do call:kuerzen "%%i 
02.
goto:eof 
03.
 
04.
:kuerzen 
05.
set "Name=%~1" 
06.
set "newname=%Name:~0,-18%" 
07.
rename "%Name%" "%newname%" 
08.
goto:eof
Bitte warten ..
Mitglied: 60730
22.11.2009 um 20:04 Uhr
@miniversum:
jau - wobei die Tampon Datei den Vorteil hat, dass man später nachforschen kann - wie denn die eine (evtl, falsch umbenamste) Datei im Ursprung mal hieß.
Bitte warten ..
Mitglied: miniversum
22.11.2009 um 20:16 Uhr
Die anforderung hat er ja nicht, oder?
Aber da kann man auch bei meiner Version ne Datei mitschreiben lassen wenn man das will.
Bitte warten ..
Mitglied: drifting
23.11.2009 um 10:53 Uhr
Hallo,

erstmal Danke euch beiden.
Es funktioniert leider immer noch nicht.
Das Problem liegt glaube ich in der Zeile
set "newname=%Name:~0,-18%"
wenn ich statt dessen direkt irgendeinen Namen eingebe, also z.B. set "newname=hallo" dann wird die Datei umbenannt. Aber das kürzen des Namens klappt leider nicht.

Grüße
Bitte warten ..
Mitglied: 60730
23.11.2009 um 22:51 Uhr
Hallo,

  • welches der Beispiele hast du denn genommen?
  • wie sieht - wenn es die temp. Datei war - der Inhalt der selbigen aus?

Gruß
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Ordnernamen aus Dateinamen erstellen (1)

Frage von Dr.Byte zum Thema Batch & Shell ...

Batch & Shell
Vergleich einer Zeichenfolge in zwei Dateinamen (3)

Frage von hongziehong zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen auslesen und in einer Schleife benutzen (12)

Frage von TeholBeddict zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
gelöst Raid-Controller (Areca) Datenverlust trotz R5 (16)

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

Server-Hardware
HP ProLiant DL380 G7, POST Error: 1785-Drive Array not Configured (10)

Frage von Paderman zum Thema Server-Hardware ...

Server-Hardware
Starker PC zum Virtualisieren (10)

Frage von canlot zum Thema Server-Hardware ...

Microsoft Office
gelöst Office 365 Pro Domäne einrichten OHNE Webseite (9)

Frage von thklemm zum Thema Microsoft Office ...