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

Frage zu Variable beim Dateinamen umbenennen

Frage Entwicklung Batch & Shell

Mitglied: chainsaw

chainsaw (Level 1) - Jetzt verbinden

03.02.2010 um 15:29 Uhr, 4925 Aufrufe, 2 Kommentare

Hallo Gemeinde,

Ich bin da über was gestolpert, das ich nicht lösen kann.

Mit dem Schnipsel hier lösche ich die ersten vier Stellen
von Dateien die in C:\temp liegen:

01.
:start 
02.
FOR /R "C:\Temp" %%i in ("*.*") do call :Tuwas "%%i" 
03.
goto :eof 
04.
 
05.
:Tuwas 
06.
set "Alt=%~n1" 
07.
set "T1=%Alt:~4,50%" 
08.
ren %1 "%T1%%~x1"
Jetzt habe ich probiert, vorher abzufragen, wieviel Stellen denn gelöscht werden sollen:

01.
set /p var=Wieviel Stellen sollen geloescht werden?:
Gibt`s ne Möglichkeit, die Variable %var% in die Abfrage mit einzubauen? Folgendes funktioniert nicht
(vermutlich weil %var% dann ja innerhalb von zwei %-Zeichen steht ):

01.
set "T1=%Alt:~%var%,50%"
Gibts da eine andere Schreibweise (Hochkomma oder sowas) womit man das zum laufen bringt?

Schönen Tag noch
Gruß chainsaw
Mitglied: Biber
03.02.2010 um 16:14 Uhr
Moin chainsaw,

eine Möglichkeit der Umsetzung wäre der Weg über delayed expansion.
Dabei werden per SET definierte (=statische) Variablen in einer bestimmten (zeitlichen) Reihenfolge aufgelöst
[ statt -wie es Standard ist- alle "gleichzeitig" unmittelbar vor dem Ausführen der ganzen Befehlszeile.]

Dazu muss "Setlocal EnableDelayedExpansion" angesagt werden und dann die "verzögert" aufzulösenden Variablen als !variable! statt %variable% angesprochen werden.

Versuch es so:
01.
@echo off & setLocal EnableDelayedExpansion 
02.
:start 
03.
Set /p "DieLaenge=Bitte Länge eingeben: " 
04.
:: ich gebe hier mal 2 oder 4 ein...auf jeden Fall eine Zahl.... 
05.
:: HIER FEHLT NOCH EINE PRÜFUNG AUF GÜLTIGE EINGABE 
06.
 
07.
FOR /R "D:\Temp" %%i in ("*.txt") do call :Tuwas "%%i" 
08.
goto :eof 
09.
 
10.
:Tuwas 
11.
set "Alt=%~n1" 
12.
set "T1=!Alt:~%dieLaenge%,50!" 
13.
Echo ren %1 "%T1%%~x1"
... ergibt z.B: bei Eingabe von "2" als DieLaenge
.... 
ren "D:\Temp\templogs\2005\2005logs.txt" "05logs.txt" 
ren "D:\Temp\templogs\2006\2006logs.txt" "06logs.txt" 
ren "D:\Temp\test\6343_test_1.txt" "43_test_1.txt" 
ren "D:\Temp\test\6343_test_2.txt" "43_test_2.txt" 
...
Grüße
Biber
Bitte warten ..
Mitglied: chainsaw
03.02.2010 um 17:13 Uhr
Hallo Biber,

Perfekt! Vielen Dank, wieder was gelernt...

Schöne Grüße
Chainsaw
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst In einer Batch-Datei einen variablen Teil eines Dateinamens auslesen (5)

Frage von dh0815 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 ...

Batch & Shell
Datei mit Variablem namen in Variablem Verzeichnis umbenennen (6)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
Umbenennen entpackter Dateien nach Dateinamen der rar- zip-Datei

Frage von windows-nutzer zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (19)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Windows Server
DC virtualisieren + wie sichern (SingleDC-Environment) (12)

Frage von KMUlife zum Thema Windows Server ...

Festplatten, SSD, Raid
RAID Controller mit Trim-Funktion, wie ermitteln (11)

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