" for" Döngüsünü kullanmaktan çok daha kolay olan kolay bir çözüm var .
Çıktıyı örnek olarak dir/o-d( dirtarihe göre ters sıralı) alalım.
Örneğin, 1'den 16'ya kadar olan satırları çıktılamak istiyorsanız, şunu kullanın:
dir/o-d|findstr/n ^^|findstr "^[1-9]: ^1[0-6]:"
Örneğin, 16 ila 45 arasındaki satırları çıkarmak istiyorsanız, şunu kullanın:
dir/o-d|findstr/n ^^|findstr "^1[6-9]: ^[2-3][0-9]: ^4[0-5]:"
Örnek çıktı:
16:08/08/2016 08:43 AM <DIR> nacl_sdk
17:11/05/2016 10:48 PM <DIR> 3b 2
18:28/04/2016 02:47 PM <DIR> sample
19:22/04/2016 10:07 PM <DIR> mysql test
20:16/04/2016 01:22 AM <DIR> 3b
21:16/04/2016 01:10 AM 2,706 errorlog
22:16/04/2016 12:53 AM 0 accesslog
...
Yıkmak:
İlk olarak, kullanarak tüm çıktı dökümü dir/o-d.
Ardından, her satırı " $Num:"findstr/n ^^
^satırın eşleşmesinin başlangıcı anlamına gelir ve ^^cmd içinde olduğumuz için kaçması gereken bir sürümdür.
Not: Bunun için kullanmanız gerekir, findstrçünkü find/n" "boşluk içermeyen çizgilerle eşleşmez.
Son olarak, çıktıyı kullanarak kırpın findstr "^1[6-9]: ^[2-3][0-9]: ^4[0-5]:".
^1[6-9]: 16 ila 19 arasında regex'tir.
^[2-3][0-9]: 20 - 39 için regex'tir.
^4[0-5]: 40 ila 45 ° C'dir.
findstr "a b c"araca ya eslestirilmeye dizeleri bulmak a, bya da c.
Ayrıca bkz. Https://stackoverflow.com/q/8844868/632951