findstr testi karakterleri içermekteyse partiye teşekkür ederim


0

Kullanıcı girişi gereken bir toplu komut dosyası var. Ancak, sadece izin vermek istiyorum a-z, 0-9, @#$].~+-=_/\:;. Bunlardan başka hiçbir karakter olmadığından emin olmak için findstr kullanmanın bir yolu var mı? Belgeleri kontrol ettim ve bunu yapmanın bir yolunu bulamıyorum.

Neyim var:

@echo off
echo Enter Username:
set /p usr=">"

Toplu iş dosyanızı da yayınladıysanız çok yardımcı olacaktır. Sorunuzu düzenleyebilir ve toplu iş dosyasını ekleyebilir misiniz?
LPChip

Evet. LotPings cevap vermesine rağmen
Mark Deven

Yanıtlar:


1

Findstr varsayılan regex modunu kullanın ve bir ters eğik çizgi ile özel bir anlamı olan bir kaçış karakterleri kullanın.

:: Q:\Test\2018\12\07\SU_1381655.cmd
@Echo off
:loop
set /p "input=Enter data(a-z, 0-9, @#$].~+-=_/\:;.:)"

Echo:%input%|findstr /I "^[a-z0-9@#$\]\.~+\-=_\/\\:;]*$" >NUL 2>&1 && (
   echo checked input ok
) || (
   echo invalid input
)
goto :loop

Tüm karakterleri doğru yapıp yapmadığımı kontrol et.
Yalnızca küçük harflerin kullanılması isteniyorsa / i anahtarını kaldırın.


Mümkün poisenouskarakter karakterleri tırnak <|>&işaretleri eko edilmediğinden, seriyi kırabilirler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.