2017-11-21 20 views
0

私は新しいコンピュータ名を設定するスクリプトを書いています。構文は次のとおりです。バッチ - 変数に数字、文字、ハイフン以外の文字が含まれていないか確認してください。

script.bat /NAME:<place new name here> 

問題はイム、私のスクリプトは、ユーザーが文字だけの数字とハイフンを入力していることを確認するために取得する方法がわからないです。だから、基本的にLENOVO-190はOKですが、LENOVO:~19|0)はありません。また、idはすべての小文字を大文字に変更するように、ちょうど美的な影響(私はそれが良いと思う)のように。 Z0 - - 9、および-

は、私は私のスクリプトがAを受け入れるようにしたいです。無効な文字が入力された場合(#とすると)、「hey! # is not allowed!

という皆さん、ありがとうございます。

+0

StackOverflowは注文するスクリプトを作成しません。あなたの仕事はスクリプトを作成することです、私たちは実行中の望ましくない問題を支援することです。 – Compo

+0

最初の文章をよくお読みください。 – ditheredtransparency

+0

@ditheredtransparency、Compoは基本的にあなたの既存のコードとあなたが問題を抱えているコード行を見たいと要求しています。 – Squashman

答えて

1

Windowsの最新バージョンはfindstrです。grepのようなもので、正規表現の一致を探すことができます。これを使用して、入力名があなたの期待に合っているかどうかを確認することができます。例えば:there are ways、純粋batcheseに大文字と小文字を交換する方法としては

C> echo abcde| findstr /r /i ^^[a-z][a-z0-9-]*$ && echo Good name! || echo Only letters, digits and hyphens, please! 
abcde 
Good name! 

C> echo ab#de| findstr /r /i ^^[a-z][a-z0-9-]*$ && echo Good name! || echo Only letters, digits and hyphens, please! 
Only letters, digits and hyphens, please! 

+0

'/ I'スイッチを使用しているので、アルファベット範囲を各クラス内で2回リストする必要はありません。 – Squashman

+0

@Sqashman:ありがとう。編集されました。 – AlexP

+0

「grep」のクールで大きなファン。 Windowsで似たようなものを使うことができたらうれしいです。みんなありがとう! @スカッシュマン、私はまた、それが働いたように、あなたが私にリンクしているあなたの投稿をupvoted。 :-) – ditheredtransparency

関連する問題