2012-07-19 2 views

Antwort

5

nicht in den Standard-Windows-Eingabeschalen (cmd.exe). Es versteht nur die? und * Platzhalter; keine regulären Ausdrücke.

Haben Sie die Möglichkeit, Cygwin, Windows PowerShell oder eine andere erweiterte Shell zu installieren?

+0

Leider nicht in der Lage im, anderen Schalen zu installieren, da dies eine Produktionsumgebung ist und i dont Rechte zu tun haben, so – lukuluku

+0

Ich glaube nicht, das ist ganz richtig. Du könntest eine Regex mit 'findstr' mit der Eingabe von einem piped' dir' Befehl machen, ich bin mir nicht sicher wie ich es schreiben soll, aber ich denke es sollte möglich sein. Ich bin sicher, dass @dbenham oder @jeb in der Lage sein werden, etwas zu finden :) –

+0

Fair genug. Wenn Sie nur die Textausgabe und keine Nebeneffekte vom Befehl wünschen, dann 'dir | findstr/r "003 [5,8] 0" 'funktioniert. – Simbilis

2

ja, du kannst. Nicht mit einem einzigen Befehl, sondern mit einer Kombination von FOR und IF. Versuchen Sie, diese für den Anfang ...

setlocal enabledelayedexpansion 
for %%a in (003?0) do (
    set fn=%%a 
    set fnl=!fn:~3,1! 
    if .!fnl!==.5 (
    echo !fn! 
) 
    if .!fnl!==.8 (
    echo !fn! 
) 
)