Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Dateiname kürzen

Frage Entwicklung Batch & Shell

Mitglied: drifting

drifting (Level 1) - Jetzt verbinden

22.11.2009, aktualisiert 14:49 Uhr, 6216 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
Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(10)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Sicherheit

Eventuell neue Lücke in Intels ME

Information von sabines zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Humor (lol)
Freidach Beitrag (36)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Windows 7
SSD - Win7 Lags (19)

Frage von ph5555 zum Thema Windows 7 ...