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

Frage Entwicklung Batch & Shell

Mitglied: Pegasus37

Pegasus37 (Level 1) - Jetzt verbinden

11.06.2009, aktualisiert 08:34 Uhr, 14700 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
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 17 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 19 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Sichere Remote Desktop Verbindung wie?
gelöst Frage von nuss33Windows Server11 Kommentare

Hallo zusammen, eins vorweg: Ich besitze einen privaten Windows Server 2008 R2 zu Hause im Netzwerk er wird nicht ...