cmdのバッチ処理におけるset /a、set /pの違いについて
SETコマンドに2つの新しいコマンドラインスイッチが追加されました。
SET /A式
SET /P variable=[promptString]である。
Aコマンドラインスイッチは、等号の右側の文字列を評価する数値式として指定します。式評価器は単純で、優先順位の高い順に以下の操作をサポートしています。
() - グループ化
! ~ 単項演算子
* / % - 算術演算子
+ - - 算術演算子
<< >> - 論理シフト
- ビット単位で"with"
^ - 位置によって "different"
| - "or" ポジション別
= *= /= %= += -= - 割り当て
&= ^= |= <= >>= - 式セパレータ
論理演算子や丸め演算子を使用する場合は、式の文字列を引用符で展開する必要があります。
式中の非数値文字列キーは、使用前に値が数値に変換された環境変数名として使用されます。
環境変数名が指定されているが、現在の環境では定義されていない場合、その値はゼロに設定される。
これにより、環境変数の値を取得するために%記号を入力する代わりに、その値を用いて計算を行うことができます。
SET /A がコマンド スクリプト以外のコマンド ラインで実行された場合、その式の最後の値が表示されます。
この代入演算子は、代入演算子の左側に環境変数名を必要とします。
数値は、0xを先頭に持つ16進数と、0を先頭に持つ8進数以外は10進数である。
したがって、0x12は18と022と同じである。8進法の計算式は混乱しやすいので注意しましょう。8と9は有効な8進数ではないので、08と09は無効な数字です。
P コマンドラインスイッチを使用すると、変数値をユーザーが入力した行に設定することができます。入力行を読み込む前に、指定された promptString が表示されます。 promptString は、空でもかまいません。
例1.
@echo off
set /p POP=Please enter the number of pings.
ping /n %POP% 429006.com
pause.
ここで、POP は以下の ping のようなコマンドで使用できる関数です。
例2.
@echo off
set a=1
:start
echo %a%
ping 172.19.5.%a% -w 1 -n 1|find /i "Lost = 1"&&set c=1|||set c=0
if %c%==0 (echo 172.19.5.%a% >>IP.txt)
set /a a=%a%+1
if %a%==255 exit
goto :start
setを使った例を示しますので、ご覧ください。
172.19.5.1 から 172.19.5.255 までそれぞれ ping を打ち、ping を打てる IP を ip.txt に書き込んでいます。
set a= を set /a a= に変更してみてください。
あるいはその逆で、まだ動くかどうか......。\
/pは入力するためのものです
/a は、変数が算術文字列と等しいことを指定するものです
引数なしは、変数を通常の文字列と等しくすることです。
例3.
@echo off
set /p b=Enter a number.
echo %b%
set /a a=2*%b%
echo %b%+%b%=%a%
pause>nul
set /a 数式計算を行う
set /p ユーザーの入力を求めるプロンプト
例えば、/p a=Waiting for POP input と設定します。と設定すると、ウィンドウに "Waiting for POP input:" と表示されるので、次のように入力した後、Enter キーを押します。
関連
-
自動コード投入とプロジェクトデプロイメントのためのバッチファイルbatスクリプト
-
Windowsのcmdコマンドラインの入出力リダイレクト問題
-
Windowsでバッチファイル.batを使用して古いファイルを削除する。
-
バットコードを共有し、ドラッグ&ドロップでファイル情報を取得可能
-
DOSバッチ処理による時限式シャットダウン操作の方法詳細
-
DOSのバッチ構文における%~dp0などの拡張変数について解説します。
-
指定したフォルダー内のファイルを遅延して削除する方法
-
DOS共通コマンド(md,rd,ren,move)一括処理マニュアル
-
DOS高度活用バッチ処理チュートリアル 第6章 ifコマンドの解説
-
DOSバッチコマンド For loopコマンド詳細説明
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
一括ASCII文字比較サイズ実数表
-
管理者権限でbatバッチを実行させる方法
-
bat は set /a 計算後の日付と時刻をインターセプトします、08 と 09 は不正な 8 進数として扱われます
-
バッチ関数の効率的な代替アプリケーション(コールフリー)
-
DOSリダイレクトコマンドの使い方とセキュリティへの応用
-
JDKの一括インストール/JREのワンクリックインストールとJava環境変数の自動設定
-
DOS(バット)文字列置換の原理
-
set /p=コマンドを詳しく説明します。
-
mavenコマンドのBATスクリプトを呼び出して共有する
-
dosコマンドでWindowsのスケジュールタスクをインポート/エクスポート