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, 6172 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 ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...