2016-12-16 2 views
0

私はいくつかの助けが必要なスクリプトを作成しています。このスクリプトでは、入力変数%1%に特定の文字列が含まれているかどうかを調べたいと思います。もしそうなら、私は一つのことをしたい。そうでない場合、私はそれが他の何かをしたい。入力変数はUNCパスであり、文字列が\\server\shareであるかどうかを確認したいのですが、大文字と小文字を区別したくありません。何か案は?特定の文字列の入力を確認する

+2

サイトガイダンスに従って適切な質問をしていないので、私はちょうど**%1 ** **%1%**を見ていることをご存知でしょう。 – Compo

答えて

2

入力変数は、(周囲の引用符を除去チルダ付き)%1又は%~1あります。

確認する方法はいくつかあります。 %input:specific string=%%input%内で何もspecific stringのすべてのインスタンスを置き換え、ある作品

@echo off & setlocal 

set "input=%~1" 

if not "%input%"=="%input:specific string=%" (
    rem // input contained the string 
) else (
    rem // input did not contain the string 
) 

方法:あなたは、可変部分文字列置換を使用することができます。したがって、置換前の文字列が置換後の文字列と等しくなければ、変数には一致した文字列が含まれます。部分文字列置換の詳細はSee this pageを参照してください。

それとも、findfindstrを使用することができます。

@echo off & setlocal 

echo(%1 | find /i "some string" && (
    rem // input contained the string 
) || (
    rem // input did not contain the string 
) 

部分文字列置換の方法が少し効率的です。

+0

ありがとうございます。可変部分文字列置換は完全に機能しました。入力変数のミスタイプをキャッチしてくれてありがとう。 –

関連する問題