こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

IF文でコンピュータ名による条件分岐を行う方法

Widows Server 2003のADでログオンスクリプトを設定しており、
その中でコンピュータ名による処理の分岐を行いたいと考えております。

例として、ログオンスクリプトで実施する処理を以下の2つとした場合の
IF文での条件分岐の記載方法について教えてください。
 【処理1】2秒待ってIEを起動し、特定のページを表示する
 【処理2】2秒待ってネットワークドライブ(Xドライブ)のマッピングを行う

コンピュータ名がxxxxxx-??(xxxxxxは共通で末尾は2桁の数字)の場合は
処理1を飛ばして処理2のみ実行する、という分岐をしたいと考えており、
以下のような記載にしてみたのですが、処理1も処理2も実行されてしまいます。

------------------------------------------
@echo off

if "%COMPUTERNAME%"==xxxxxx-?? goto SKIP
ping -n 2 127.0.0.1 >NUL
start "C:\Program Files\Internet Explorer\iexplore.exe" http://sample.co.jp
:SKIP

ping -n 2 127.0.0.1 >NUL
net use X: /d /y
net use X: \\xxxxx\%USERNAME% /PERSISTENT:YES
------------------------------------------

非常に初歩的な質問で申し訳ありませんが、
どのように記載すればよいかアドバイスをお願い致します。

投稿日時 - 2013-11-01 16:56:15

QNo.8329681

すぐに回答ほしいです

質問者が選んだベストアンサー

案1:
if "%COMPUTERNAME%"==xxxxxx-?? goto SKIP

if "%COMPUTERNAME%"=="xxxxxx-00" goto SKIP
if "%COMPUTERNAME%"=="xxxxxx-01" goto SKIP
・・・・・(中略)・・・・・
if "%COMPUTERNAME%"=="xxxxxx-98" goto SKIP
if "%COMPUTERNAME%"=="xxxxxx-99" goto SKIP
に変更する。
メリット:何をしているのかわかりやすい
デメリット:長い

案2:
if "%COMPUTERNAME%"==xxxxxx-?? goto SKIP
を、
if "%COMPUTERNAME:~0,7%"=="xxxxxx-" goto SKIP
に変更する。
デメリット:先頭7文字しか見てないので末尾が数字以外でもスキップする。

案3:
ちゃんとスクリプトを書いて要件通りの動作をするようにする。
デメリット:めんどくさい。一見何をしているのかわからない。

案3をご希望なら書いてもいいですけど、多分処理内容の意味がわからないと思うので、後で困ることになるかと思います。

蛇足:
if の比較の左辺を" "で囲んだのなら右辺も囲まないとだめです。絶対に一致しません。

投稿日時 - 2013-11-01 22:53:13

お礼

お礼が遅くなり申し訳ありません。
ワイルドカードの記述が間違っていて一致しなかったんですね…。
頂いた回答で問題なく動作することを確認できました。
ありがとうございました!!

投稿日時 - 2013-11-07 08:55:44

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問