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 Platzhalter bzw. Wildcards in cmd von WindowsXP und Server 2003

Mitglied: Pegasus37

Pegasus37 (Level 1) - Jetzt verbinden

11.06.2009, aktualisiert 08:34 Uhr, 15076 Aufrufe, 8 Kommentare

Guten Morgen!
Ich habe ein Problem beim Einsetzen von Platzhaltern unter Windows.

Ich muß aus einem Verzeichnis in einer Batch-Datei alle Dateien ausfiltern, deren Dateiname mit 31 beginnt und genau 8 Zeichen (ohne Extension) lang ist. Eigentlich wäre das ja kein Problem, da das ? als Wildcard für genau ein beliebiges Zeichen stehen soll. Für einen Dateinamen bis zu 7 Zeichen stimmt das auch, allerdings nicht mehr bei 8 Zeichen. Der Filter 31??????.* findet alles, was mindestens 8 Zeichen lang ist und mit 31 beginnt, also auch längere Dateinamen.
Wie kann ich das Problem umgehen bzw. lösen?
Mitglied: mexx
11.06.2009 um 10:26 Uhr
Ja das Problem kenne ich. Die Wildcardsuche über diese veraltete Shell ist dahingehend nicht clever gemacht. Der Befehl dir 31??????.* findet auch alle 31?, 31??, 31??? und so weiter. Leider ist as so gewollt. Aber ich kann Dir nur dringend empfehlen, Dich mit Powershell auseinander zu setzten. Betrachte Powershell als weiterentwicklung der cmd. Mit den Befehl Get-ChildItem c:\*.* -include 11??????.* erreichst Du Dein Ziel.
Bitte warten ..
Mitglied: Biber
11.06.2009 um 11:46 Uhr
Moin Pegasus37,

falls aber die Zeit drängt und ein kurzfristiger Workaround über die CMD.exe vertretbar sein sollte:
- dann vergiss an dieser Stelle die Filterung über DIR plus ?-Wildcards.

Denn "?" steht NICHT für "genau 1 beliebiges Zeichen", sondern auch für "ein oder kein Zeichen", es sei denn die gesamte Wildcard besteht aus genau einem Fragezeichen *gg

Demo:
01.
>dir /b ?.txt 
02.
x.txt 
03.
 
04.
[okay, so soll es sein] 
05.
 
06.
(=11:41:50  D:\temp=) 
07.
>dir /b ??.txt 
08.
dd.txt 
09.
in.txt 
10.
js.txt 
11.
pc.txt 
12.
sg.txt 
13.
x.txt --------> die Datei hat aber keine 2 Zeichen, sondern "bis zu 2 Zeichen, 2 Zeichen maximal"!
ABER:
Wenn Du nun alle Dateien mit GENAU 8 Zeichen brauchst:
[wieder Beispiel am CMD-Prompt /erste Zeile ist Eingabe/Rest Ausgabe]
01.
>set enableDelayedExpansion & for %i in (*.*) do @set "n=%~ni" & if "!n:~7!" NEQ "" if "!n:~8!"=="" @echo %i 
02.
alltest9.txt 
03.
Beispiel.asc 
04.
Beispiel.txt 
05.
Datetest.bat 
06.
datetest.js 
07.
Decrypt1.vbs 
08.
Decrypt2.vbs 
09.
dir2test.txt 
10.
eags_usr.ini 
11.
echotest.bat 
12.
ergebnis.csv 
13.
errlev10.cmd 
14.
FindRepl.exe 
15.
FindRepl.ini 
16.
forltest.bat 
17.
ipconfig.txt 
18.
mfgbiber.txt 
19.
 
Anmerkung: Bei mir ist "DelayedExpansion IMMER gesetzt via Registry. Das "SET EnableDelayedExpansion & " ist bei mir also nicht nötig - aber bei M$-Werkseinstellung.
Dann geht es so.

Grüße
Biber
Bitte warten ..
Mitglied: mexx
11.06.2009 um 11:53 Uhr
Mensch Biber, kurzfristig trifft es, aber einfach is des net. Ich ziehe den Hut. Kann mit der eile gar nix anfangen. Setzt Du eine Variable mit Funktionsaufruf?
Bitte warten ..
Mitglied: bastla
11.06.2009 um 11:59 Uhr
@mexx
Eigentlich macht Biber das etwa so:
01.
@echo off & setlocal 
02.
 
03.
for %%i in (31*.*) do call :ProcessFile "%%i" 
04.
goto :eof 
05.
 
06.
:ProcessFile 
07.
set "Name=%~n1" 
08.
if "%Name:~8%" neq "" goto :eof 
09.
if "%Name:~7%"=="" goto :eof 
10.
echo Der Name von %1 ist genau 8 Zeichen lang. 
11.
goto :eof
- nur ein klein wenig kompakter ...

Grüße
bastla
Bitte warten ..
Mitglied: paulepank
11.06.2009 um 12:01 Uhr
Hallo hier,

oder ein anderer Weg nach Rom
01.
dir /b 31*.* | findstr "31......\..*"
Einschränkung:es muß eine Dateierweiterung geben.

cu paulepank
Bitte warten ..
Mitglied: bastla
11.06.2009 um 12:05 Uhr
... und Einschränkung 2: Es sollte keinen Dateinamen geben, der an der 9. Stelle einen Punkt hat.

Grüße
bastla
Bitte warten ..
Mitglied: paulepank
11.06.2009 um 12:15 Uhr
ja das ist mir eben auch aufgefallen
Bitte warten ..
Mitglied: Pegasus37
11.06.2009 um 18:14 Uhr
An alle vielen Dank für die umfangreichen Workarounds.
Da meine Dateinamen ausschließlich aus Ziffern bestehen, ist mir mit der Längenabfrage des Namens schon sehr geholfen.
Nochmals vielen Dank.
Bitte warten ..
Ähnliche Inhalte
VB for Applications

XML auslesen mit VBScript: getElementsByTagName mit Platzhalter bzw. Wildcard möglich? nochmal

gelöst Frage von DschainersVB for Applications3 Kommentare

Hallo Gemeinde, ich habe im obigen Thema ein paar Kommentare hinterlegt, vielleicht kann mir da jemand helfen. Ich bin ...

VB for Applications

XML auslesen mit VBScript: getElementsByTagName mit Platzhalter bzw. Wildcard möglich?

gelöst Frage von alfabravoVB for Applications11 Kommentare

Hallo, ich möchte einige Knoten aus einer XML-Datei in eine *.csv-Datei schreiben und komme an einer Stelle nicht weiter. ...

Datenbanken

Platzhalter für VBA Code

gelöst Frage von Dr.CornwallisDatenbanken4 Kommentare

Hi zusammen, viele von euch VBA Cracks werden jetzt bestimmt lachen aber ich schaffe es einfach nicht einen Platzhalter ...

Windows Update

MS: Update-Server-Adressen OHNE Wildcards

gelöst Frage von mrserious73Windows Update17 Kommentare

Hallo zusammen, es gibt unzählige Threads dazu im Internet, doch keiner scheint eine Lösung zu liefern: Problemlos bekommt man ...

Neue Wissensbeiträge
Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 4 StundenGoogle Android2 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 4 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 7 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 1 TagWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server38 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing18 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

CPU, RAM, Mainboards
32 gb RAM zu wenig?
Frage von pcguyCPU, RAM, Mainboards13 Kommentare

Hallo zusammen, mein PC verfügt über 32GB Ram. Nun kriege ich bei grossen Dateien im Illustrator die Fehlermeldung das ...