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

String variabel beschneiden

Frage Entwicklung Batch & Shell

Mitglied: mzah00

mzah00 (Level 1) - Jetzt verbinden

05.01.2009, aktualisiert 14:18 Uhr, 5406 Aufrufe, 2 Kommentare

Hallo Script-Menschen

Ich habe eine Batch Datei. Diese möchte ich in einen ORdner kopieren können in denen sich Dateien befinden, die ich durch das automatisiert Script umbenennen bzw. den Namen kürzen möchte. Das Schema sieht eigentlich immer gleich aus -> ersten 14 Zeichen des Dateinamens abschneiden manchmal aber nur die ersten 8 Zeichen. Also muss die Anzahl der abzuschneidenden Zeichen Variabel sein (durch eine Userabfrage).

Das Script sieht so aus:

@echo off
FOR /F "delims=" %%i in ('Dir /B /A-H-D') do call:umbenen "%%i"
goto:eof

:umbenen
set "oldname=%~1"
set "newname=%oldname:~16%"
rename "%oldname%" "%newname%"

Wie kann ich das "~16" in eine veränderbare Variable umwandeln? Wenn ich vorher z.B. der Variable %%k den Wert 16 <<set %%k = 16>> zuweise und statt <<set "newname=%oldname:~16%">> den Befehl <<set "newname=%oldname:~%%k%">> verwende, werden nicht die ersten 16 Zeichen abgeschnitten, sondern ich erhalte den kompletten Dateinamen inkl. der Zahl 16 angehängt im Dateinamen.

Ich hoffe ich konnte meine Frage ein wenig verständlich formulieren...

Bin Dankbar für jede Hilfe!

Gruss
mzah_




[Edit Biber] Als "gelöst" markiert und verschoben von "Editoren & IDE's" nach "Batch & Shell"[/Edit]
Mitglied: bastla
05.01.2009 um 12:11 Uhr
Hallo mzah00!

Sollte etwa so gehen (um die Kontrolle der eingegebenen Zeichenanzahl musst Du Dich natürlich noch kümmern):
01.
@echo off & setlocal 
02.
set /p "Lang=Wie viele Zeichen sollen abgeschnitten werden?" 
03.
for /f "delims=" %%i in ('dir /b /a-h-d') do call :umbenen "%%i" 
04.
goto :eof 
05.
 
06.
:umbenen 
07.
set "oldname=%~1" 
08.
call set "newname=%%oldname:~%Lang%%%" 
09.
ren "%oldname%" "%newname%"
Grüße
bastla

P.S.: Bitte zum Posten von Batches o. Ä. Code-Formatierung verwenden ...
Bitte warten ..
Mitglied: mzah00
05.01.2009 um 12:25 Uhr
You're the man!

Danke!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Multimedia
gelöst PDF: Alle Seiten entfernen, welche nicht definierten String enthalten (9)

Frage von MegaGiga zum Thema Multimedia ...

C und C++
gelöst Anzahl der Buchstaben in einem String Element Array C++ (3)

Frage von Protected zum Thema C und C ...

C und C++
String einlesen in Array und wieder ausgeben von hinten (4)

Frage von Protected zum Thema C und C ...

Batch & Shell
gelöst Poweshell Script soll String ersetzen und die leere Zeile löschen (4)

Frage von Mars123 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
DSL, VDSL
gelöst DSL 200m verlängern (15)

Frage von Angela44 zum Thema DSL, VDSL ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...

Windows Server
SBS 2011 Standard virtualisieren (11)

Frage von HeinrichM zum Thema Windows Server ...

Exchange Server
gelöst DHCP Sever MS Server 2012 Problem (10)

Frage von Florian86 zum Thema Exchange Server ...