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, 4903 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 Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix (6)

Frage von brause1701 zum Thema Batch & Shell ...

Batch & Shell
gelöst Linux Shell Mailanhang umbenennen (2)

Frage von Thekivi zum Thema Batch & Shell ...

Batch & Shell
gelöst Mit zusammengesetzter Variable auf andere Variable zugreifen (2)

Frage von abiber zum Thema Batch & Shell ...

Batch & Shell
gelöst Ordner Umbenennen +heutiges Datum (12)

Frage von ahsenden zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows 7
gelöst BOOTMGR is missing (auch nach bootrec -RebuildBcd) (21)

Frage von Mipronimo zum Thema Windows 7 ...

Router & Routing
Tipps für Router (ca. 100 clients, VPN) (20)

Frage von oel-auge zum Thema Router & Routing ...

Windows Userverwaltung
Windows Freigabe: Zugriff auf alle Ordner trotz Sicherheitseinstellungen (18)

Frage von Pandreas zum Thema Windows Userverwaltung ...

Exchange Server
gelöst MS Exchange 2016 - Basicconfig Fragen (16)

Frage von maddig zum Thema Exchange Server ...