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 Teil vom Dateinamen als Variable

Mitglied: Bugger

Bugger (Level 1) - Jetzt verbinden

25.09.2013, aktualisiert 16:26 Uhr, 1749 Aufrufe, 10 Kommentare

Hallo,

ich möchte aus einem Dateinamen 3 Zeichen auslesen und als Variable nutzen können. Die 2 der 3 Zeichen unterscheiden sich aber immer. Fängt immer mit E an gefolgt von zwei Zahlen zwischen 01 bis 25. Die Anzahl an Zeichen vor und nach diesen dreien unterscheiden sich ebenfalls. Also müsste irgendwie im Dateinamen gesucht werden. Falls es relevant ist, vor und nach diesem Codeblock liegen weitere Befehle. Daher muss es auch ein Batch Lösung sein.

Geht das irgendwie? Danke im Voraus


Und noch eine Frage nebenbei, gibt es einen Befehl, der das cmd Fenster vom schließen abhält wenn eine Formel einen Fehler hat? Pause funktioniert nicht.
Mitglied: Endoro
25.09.2013 um 16:36 Uhr
Hi, ein Vorschlag:
01.
for /f "delims=" %%a in ('dir /b /a-d ^|grep -Eo "E[0-9][0-9]"') do (
02.
    echo %%a
03.
)
grep for Windows
lg.
Bitte warten ..
Mitglied: Bugger
25.09.2013 um 17:27 Uhr
Danke, aber gibt es auch eine Möglichkeit ohne zusätzliche Software?
Bitte warten ..
Mitglied: Endoro
25.09.2013, aktualisiert um 19:09 Uhr
Ja, du könntest ein "Hybridscript" (JScript/Batch) nehmen, da muss nichts installiert werden weil es vom WSH direkt unterstützt wird. Es gibt einige im Netz, zB dieses. Du ersetzt den 'grep'-Aufruf einfach damit:
01.
repl ".*(E\d\d).*" "$1"
lg.
Bitte warten ..
Mitglied: Bugger
25.09.2013, aktualisiert um 19:29 Uhr
Hmm, und eine Lösung die komplett auf zusätzliche scripte oder ähnliches verzichtet? Ich hatte sowas hier schon gesehen, allerdings wurde dort nie etwas aus der Mitte des Namens genommen. Etwas kurzes ohne Java. Sodass man auch noch durchblickt bei der Batch Datei.
Bitte warten ..
Mitglied: bastla
25.09.2013 um 19:55 Uhr
Hallo Bugger!

Kann vor dem gesuchten Namensbestandteil ein weiteres "E" (oder "e") enthalten sein? Können die 3 Zeichen auch am Beginn des Dateinamens stehen?

Bei zweimal "nein" könntest Du die Zerlegung so versuchen (ungetestet):
01.
for /f "delims=" %%i in ('dir /b /a-d *E*.*') do (
02.
    for /f "delims=e" %%a in ("%%~ni") do (
03.
        set "Name=%%b"
04.
        setlocal enabledelayedexpansion
05.
        echo E!Name:~,2!
06.
        endlocal
07.
    )
08.
)
Grüße
bastla
Bitte warten ..
Mitglied: Bugger
25.09.2013 um 20:23 Uhr
In der Art hatte ich mir das vorgestellt. Allerdings können auch noch andere E in dem Dateinamen vorkommen, daher kommt man mit *E* wohl nicht soweit.

Was mir jetzt erst einfällt was vll. helfen könnte, vor dem E stehen auch immer zwei Zahlen und ein S. Also S00E00 - in der Art.
Bitte warten ..
Mitglied: bastla
25.09.2013, aktualisiert um 20:37 Uhr
Hallo Bugger!
Allerdings können auch noch andere E in dem Dateinamen vorkommen
Magst Du auch verraten, an welchen Positionen? Meine Prämissen findest Du ja oben ...
was vll. helfen könnte, vor dem E stehen auch immer zwei Zahlen und ein S. Also S00E00 - in der Art.
Hilft hinsichlich der Zerlegung nix, da alles vor dem ersten "E" (wenn nicht das "E" am Anfang des Dateinamens steht) in "%%a" landet und schlicht ignoriert wird ...
daher kommt man mit *E* wohl nicht soweit.
Ist das das Ergebnis Deines Tests?

Grüße
bastla
Bitte warten ..
Mitglied: Endoro
25.09.2013, aktualisiert um 22:15 Uhr
Hi, so was ist mir noch eingefallen:
01.
@echo off &setlocal
02.
for /f "delims=" %%a in ('dir /b /a-d *e*^|findstr /i "E[0-2][0-9]"') do call:check "%%~na"
03.
goto:eof
04.

05.
:check
06.
set "name=%~1"
07.
:loop
08.
set "name=%name:*e=%"
09.
echo "%name%"|findstr /bi ".[0-2][0-9]" >nul|| goto:loop
10.
set "name=e%name:~0,2%"
11.
echo %name%
12.
exit /b
Schön ist das aber nicht. Ich würde lieber ein bewährtes Unix-Tool oder meinetwegen JScript nehmen
lg.

PS: Dank an @Biber, ist verbessert
Bitte warten ..
Mitglied: Biber
25.09.2013, aktualisiert um 22:08 Uhr
[bisschen OT] @ Endoro
Die Pattern für Findstr findstr /i "E[0-9][0-9]" liesse sich bei den gegebenen Anforderungen reduzieren auf findstr "E[0-2][0-9]"

Grüße
Biber
[/bisschen OT]
Bitte warten ..
Mitglied: Bugger
25.09.2013, aktualisiert um 22:26 Uhr
Also ich finde die Lösung sehr schön, sie funktioniert nämlich genauso wie ich mir das vorgestellt habe Vielen lieben Dank dafür!

Habe die Frage schon auf erledigt gesetzt aber meine andere Frage ist ja noch offen, auch wenn weniger wichtig.^^ Wäre aber interessant zu wissen, ob es denn einen Befehl gibt der das Fenster offen lässt bei Fehlern im Script?
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Teil eines Strings löschen
gelöst Frage von Dnis822Batch & Shell18 Kommentare

Hallo zusammen, ich komme gerade bei folgendem Punkt nicht weiter: Ich habe eine Datei die völlig unformatiert ist, das ...

Batch & Shell
Teil einer Variablen auslesen
gelöst Frage von mondfelder69Batch & Shell7 Kommentare

Hallo habe folgendes Problem: Ich möchte mit folgender Batch alle xls Dateien in xlsx konvertieren. Das funktioniert auch wunderbar, ...

Windows 10
Win10-Aktivierungsfrust Teil III
Tipp von DerWoWussteWindows 106 Kommentare

"Nicht schon wieder Ihmchen mit seinem Aktivierungsfrust" wird jetzt hoffentlich keiner denken ;-) Ich habe Neuigkeiten zu meinen Beobachtungen ...

Windows 10
Win10-Aktivierungsfrust Teil II
Erfahrungsbericht von DerWoWussteWindows 1014 Kommentare

Ein kleiner Erfahrungsbericht über den Microsoft-Aktivierungssupport. Ich habe diverse Win8.1 Pro (non-VL) auf Win10 Pro inplace upgegradet, alles lief, ...

Neue Wissensbeiträge
Sicherheits-Tools
Putty hat heftige Bugs korrigiert!
Information von Lochkartenstanzer vor 7 StundenSicherheits-Tools5 Kommentare

Moin, Wie man aus herauslesen kann, sind in den Versionen vor 0.71 gravierende Bugs, die es angeraten erscheinen lassen, ...

Off Topic
Sachen die die Welt nicht braucht - Platz 1
Tipp von brammer vor 3 TagenOff Topic14 Kommentare

Hallo, ich habs als Tipp angelegt als Erfahrungsbericht nein Danke brammer

Humor (lol)
Spirit of Health-Kongress in Berlin
Information von AnkhMorpork vor 3 TagenHumor (lol)3 Kommentare

tgif! Beim dritten Spirit of Health-Kongress trafen sich am Wochenende Alternativmediziner und Naturheilkundler im Maritim Hotel Berlin, um sich ...

Windows 7

Updates zum Nachrüsten des SHA-2-Support für Windows 7 SP1, Windows Server 2008 (R2) und WSUS 3.0 SP2 sind da

Information von kgborn vor 5 TagenWindows 7

Wie bereits früher angekündigt (Windows 7 u. Server 2008 (R2) SHA-2-Update kommt am 12. März 2019) hat Microsoft die ...

Heiß diskutierte Inhalte
ISDN & Analoganschlüsse
Für was ist der Kasten direkt neben dem EVz59 zuständig?
Frage von Windows10GegnerISDN & Analoganschlüsse17 Kommentare

Hallo, im Schwarzwald habe ich folgendes Foto gemacht: Der Rechte Kasten ist der APL. So was ähnliches wie den ...

Cloud-Dienste
Remotedesktopverbindungen beeinflussen sich gegenseitig
gelöst Frage von Samy89Cloud-Dienste15 Kommentare

Moin, ich habe mehrere RDPs gleichzeitig laufen, auf denen jeweils ein Script via Powershell läuft. In diesem Prozess benutzt ...

Netzwerkgrundlagen
Reicht 10GBit Uplink Port für Stacking für ein 10GBit Switch?
gelöst Frage von walnickNetzwerkgrundlagen12 Kommentare

Hallo, Ich habe eine frage. Ich überlege gerade 2 neue Switche von CiscoSG350XG-24F  zu kaufen und die als Core ...

DNS
Größere DNS Probleme nach zweitem DC. Eigentlich sollte es auch dadurch besser werden
Frage von TeWutzDNS12 Kommentare

Hallo zusammen, nachdem ich letzte Woche erfolgreich einen zweiten DC ) an den Start gebracht habe melden sich weiterhin ...