Top-Themen

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

gelöst Parent-Verzeichnis als String auslesen... schwierig?

Mitglied: 52271

52271 (Level 1)

19.08.2007, aktualisiert 20.08.2007, 4107 Aufrufe, 5 Kommentare

Hallo an alle! Bin leider eher ein Novize, als daß ich Euch noch/schon helfen könnte... vielleicht könnt Ihr mir dafür die Augen öffnen? Danke für's Drübergucken..!

Ich stehe vor folgendem Problem:

- In einem Verzeichnis der folgenden "Marke"
C:\Dokumente und Einstellungen\Dies und das\Tralala\230-Honkong\
findet sich zum Beispiel die Datei Gibsnich.txt

Ich möchte gern folgendes tun
- die ersten drei Zeichen des Überverzeichnisses auslesen
- also "230"
- dann Gibsnich.* in 230.* (umbenennen)

Habe ordentlich gesucht, aber das Populärste ist es, mit %CD% das Verzeichnis anzeigen zu lassen bzw. in einer Variable zu speichern, die dann via delims und token verändert wird... aber WIE, damit ich dann meine "230" in einer Variable gespeichert kriege? Es wird immer der ganze Pfad, mehrere Unterverzeichnisse bzw. mit Slashs \ angegeben... Es reicht bei mir nicht dazu, die Befehlserklärungen in eigenes Hirn-Bätsch umzusetzen *schmoll*...


Bedanke mich für recht kritische Kommentare oder gar Hilfe ;)

Myro
Mitglied: miniversum
19.08.2007 um 18:54 Uhr
Ist eigentlich ganz einfach.
Mit der Forschleife kans tdu den string mit den vielen \ zeilegen udn alle durchmachen, dabei nur den letzten speichern. Danach mußt du in dieser Variabeln di ersten drei zeichen rausholen und danach Die datei umbenennen. Das ganze dann so:
FOR /F "delims=\" %%i in ('echo %cd%') do set lastpath=%%i
set erste=%lastpath:0,3%
ren Gibsnich.txt %erste%.txt

miniversum
Bitte warten ..
Mitglied: 52271
19.08.2007 um 21:42 Uhr
danke, miniversum!!

leider hat die letzte portion deiner zeilen bei mir syntaxfehler ausgelöst... danke trotzdem, du hast mich auf eine schleifen-recherchen-idee gebracht, und nach ein bißchen internet-abgrasenbasteln funktioniert es jetzt... (auch wenn ich nicht genau verstehe, warum )!

REM TEIL 1
REM GRÖSSTE DATEI IN TEXTDATEI SCHREIBEN, DEREN NAMEN AUSLESEN
dir *.txt /o-s /b > sort.txt

for /f %%a in (sort.txt) do (
SET STOREME=%%a
GOTO FRWRD
)
:FRWRD



REM TEIL 2
REM Namen NUR des übergeordneten Verzeichnisses auslesen (RD)
REM THANKS TO IVO FOR THE FOLLOWING LINES
Set CF=%CD%
Set RD=
:LOOP
If "%CF:~-1,1%"=="\" GoTo :DONE
Set RD=%CF:~-1,1%%RD%
Set CF=%CF:~0,-1%
GoTo :LOOP
:DONE


REM TEIL 3
REM erste drei Buchstaben extrahieren und umbenennen
set start=0
set length=3
CALL SET erste=%%RD:~%start%,%length%%%
rename %storeme% %erste%.txt



DAAAANKE... es hat sich so gut angefühlt, als ich das Gefühl hatte, irgendjemand begreift, wie das alles vor sich geht. Ich halte es ja für reinen Zufall, daß ein Computer funktioniert ;) ...
Bitte warten ..
Mitglied: Biber
20.08.2007 um 00:11 Uhr
Moin myro81,

willkommen im Forum.

Ich würde, auch wenn die von Dir gepostete Variante des Themas funktioniert, aus Gründen der Wartbarkeit doch eher etwas 3zeiliges a la miniversums Lösung empfehlen.

Also eine FOR /F-Anweisung bezogen auf %CD% wie oben,
oder vielleicht eine simple FOR-Anweisung wie hier:
01.
for %%i in ("%cd%\..") do @Set "lastpath=%%~nxi"  
02.
set first3=%lastpath:~0,3% 
03.
ren Gibsnich.txt %first3%.txt
Grüße
Biber
Bitte warten ..
Mitglied: bastla
20.08.2007 um 00:32 Uhr
Hallo myro81!

Falls Du den Schritt 2 noch etwas abkürzen wolltest, könnte ich ([Edit]weil ich Biber's Version noch nicht gesehen hatte[/Edit]) folgenden Ansatz anbieten :
01.
for /f "delims=" %%i in ('echo %cd%') do set "RD=%%~nxi"
Funktionsweise: Bei Verwendung der Schreibweise ~nx für eine "for"-Variable (siehe am Ende der Hilfe zu "for") wird eigentlich Name und Extension einer Datei aus dem Variableninhalt extrahiert. Da allerdings der CMD-Interpreter alles, was nach dem letzten \ eines Pfades folgt, als Datei ansieht, bekommst Du, da ja %CD% keine Datei enthält, dadurch das gesuchte letzte Verzeichnis des Pfades ...

Grüße
bastla

[Edit] Bei der Bahn würden die sich vermutlich über eine Verspätung von knapp über 20 Minuten freuen ... [/Edit]
Bitte warten ..
Mitglied: 52271
20.08.2007 um 19:52 Uhr
Das ist Zauberei. Ich habe gestern ungelogen über 8 Stunden ausprobiert, getüftelt und verfeinert, und Ihr traut Euch hier, solche Dreizeiler aus dem Handgelenk zu schütteln! Vielen Dank für die Vereinfachung, Biber, und für die Hirnaufbereitung Dir, bastla..!
- eines Tages will ich sowas auch selbst können

Gruß mit herrlicher Regenfrischluft aus Dresden
Myro
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Alle Dateien in einem Verzeichnis zeilenweise auslesen

gelöst Frage von NagusBatch & Shell14 Kommentare

Hi zusammen, da ich schon eine Weile nix mehr im Batch gemacht habe bin ich ein wenig raus und ...

Batch & Shell

String Zeichenpaare auslesen und bearbeiten

Frage von ahstaxBatch & Shell6 Kommentare

Moin, ich möchte gerne einen String der Form "41004800", der beliebig lang sein kann, in Zeichenpaare aufteilen, also in ...

Batch & Shell

Datei aus Verzeichnis auslesen?

gelöst Frage von freshman2017Batch & Shell4 Kommentare

Hallo Ihr! Ich wollte mir gerade mit nachfolgendem Batch Befehl: alle darin befindlichen Bilder auflisten. Ausgabe: Wie kann ich ...

Batch & Shell

String aus Spalte in csv auslesen und ersetzen

Frage von mIsSteRBatch & Shell4 Kommentare

Hallo, meine aktuelle Frage bezieht sich auf diese Frage von Dienstag. Ich muss nun eine csv auslesen und dort ...

Neue Wissensbeiträge
Sicherheit

Oracle gibt kritische Updates für diverse Produkte frei (16. Oktober 2018)

Information von kgborn vor 9 StundenSicherheit

Oracle hat zum 16. Oktober 2018 eine ganze Reihe an kritischen Updates für seine Produkte freigegeben. Eine Kurzübersicht mit ...

Windows 10
FYI: Fristen beim Windows 10 Downgrade-Recht
Information von kgborn vor 9 StundenWindows 10

Möglicherweise ist das bei euch bekannt - ich habe es gerade aus einem Newsletter eines OEMs herausgefischt. Beim Downgrade-Recht ...

CMS
Freie Wähler Bayern MySQL PW online
Information von sabines vor 12 StundenCMS6 Kommentare

Die Typo3 Installation der Freien Wähler Bayern scheint wohl längere Zeit nicht mehr angefasst und/oder fehlkonfiguriert zu sein. Nach ...

Sicherheit
Adminrechte dank Bug in Intel HD Graphics Treiber
Information von DerWoWusste vor 1 TagSicherheit

Intel HD graphics 4200 und neuer (4400, 4600 520,530,620, 630,) sind auf jeden Fall betroffen und bereinigte Treiber sind ...

Heiß diskutierte Inhalte
Windows 10
Sysprep Fehler im Log kann nicht starten
Frage von grillinator95Windows 1021 Kommentare

Hallo, kann leider SYSPREP nicht mehr starten, Win10 64bit. Logfile sagt folgendes: 2018-10-17 13:44:56, Info SYSPRP 2018-10-17 13:44:56, Info ...

Internet
Ist diese URL denkbar (Syntax)?
gelöst Frage von departure69Internet17 Kommentare

Hallo. Der Sohn eines Arbeitskollegen hat im Gymnasium EDV-Unterricht. Leider hat er in der letzten Klassenarbeit einen Fünfer geschrieben. ...

Debian
Linux debian 9 Installation
Frage von Green14Debian15 Kommentare

Hallo zusammen, ich habe mich ein wenig mit Debian auseinandergesetzt und möchte mir eine Standard-Installation als Grundlage für andere ...

Exchange Server
Outlook Anywhere - Anmeldefenster muss mit Domain gefüllt werden
Frage von leon123Exchange Server15 Kommentare

Hallo zusammen, ich habe relativ erfolgreich einen Exchange 2016 aufgesetzt, sowie ein SAN-Zertifikat eingespielt und Outlook Anywhere aktiviert. Beim ...