profaim  >  ユーティリティ  >  コマンドプロンプト  >  ユーティリティ群(PRFM_TOOLS)  >  文字列ツール  >  CONCAT.cmd

CONCAT.cmd 環境変数に指定文字列を連結する

作成日:2012/10/05
Windows 7 コマンドプロンプト PRFM_TOOLS 1.0.0 - CONCAT

1.コマンドプロンプトで環境変数の値に文字列を連結する

1−1.Windowsコマンドプロンプトで2つの文字列を連結するツール作りました。

Windowsのコマンドプロンプトから呼び出せる文字列連結ツールを作成しました。あらかじめ環境変数に保存しておいた変数に任意の文字列を追加できます。その際、連結したい2値の間に挿入するセパレータも指定できます。"CONCAT.cmd" 当サイトで配布している ユーティリティ群(PRFM_TOOLS) に収録しています。左記ページのリンクからダウンロードして解凍すれば利用できます。

1-2.そんなのWindowsコマンドプロンプトで簡単にできるが!?

文字列の連結は、Windowsコマンドプロンプトで簡単に実現できるが!?と思う方も多いかと思います。確かに、以下の通り簡単に実装できます。左辺を代入したい環境変数名、右辺を連結したい環境変数の名前(両端を%で囲う)を連結したい順序に並べるだけです。普段使いではこれで十分です。

: 環境変数 VAL1 と VAL2 を連結して VAL1 とする。
C:\>SET VAL1=%VAL1%%VAL2%

2.セパレータを指定できるところが便利

CONCAT.cmd の仕様

今回作成した CONCAT.cmd は下表の通りで、3番目の引数でセパレータ文字列を指定できます。セパレータ文字列というのは、1番目の引数の値と2番目の引数の値を連結する際に間に挿入される文字列です。

PRFM_TOOLS\STRING\CONCAT.cmd #1, #2, #3
引数番号 必須指定 指定種別 引数説明
#1(結果の環境変数名・連結対象左) 必須 環境変数名として取り得る値
  • 連結対象の左側となる環境変数名を指定します。両端の「"」は引用符とみなされ除外されます。
  • 連結後の値もこの環境変数に入ります。
#2(連結対象右の文字列) 必須 任意の文字列
  • 連結対象の右側となる値を指定します。両端の「"」は引用符とみなされ除外されます。
#3(セパレータ文字列) 任意 任意の文字列
  • 連結対象左と右との間に挿入されるセパレータの文字列を指定します。
  • 省略するとセパレータなしとして単純に連結対象が連結されます。

 

「連結する際」というのがポイントで、連結対象の左側が無い(空文字)だった場合は3番目の引数にセパレータ文字列を指定してもそれが挿入されることはありません。例えば「CSV_VAL」という環境変数に "ABC" と "DEF" とを「","(カンマ)」区切りで連結したい(CSVを作りたい)といった場合にコーディングの手間が省けます。以下に CSV行 を作成する例を示します。(当サイトで配布している ユーティリティ群(PRFM_TOOLS) を C:\ に配置している場合の例です。コマンド呼び出しは絶対パス指定でも相対パス指定でも問題ありません。)

: CSV行の値を初期化する
C:\>SET CSV_VAL=

: 文字列「ABC」を1列目の値、文字列「DEF」を2列目の値として設定する
C:\>C:\PRFM_TOOLS\STRING\CONCAT.cmd CSV_VAL "ABC" ","
文字列を連結しました。【ABC】

C:\>C:\PRFM_TOOLS\STRING\CONCAT.cmd CSV_VAL "DEF" ","
文字列を連結しました。【ABC,DEF】

: 結果をsample.csvへ出力
C:\>ECHO %CSV_VAL%>>sample.csv


これで sample.csv の CSVファイル に「ABC,DEF」という値が追記されます。列の先頭であるかを意識せずに同じ書式で実装できるため多少楽に実装でき、コードの見通しもよくなると思います。

より実装寄りの詳細な説明はソースコード中のコメントが充実しているので、ソースをダウンロードしてチェックしてみてください。





  ユーティリティ群(PRFM_TOOLS)  
文字列ツール
CONCAT.cmd
LENGTH.cmd
日付ツール
DATE_ADD.cmd
NOW_FORMAT.cmd
ファイル操作ツール
RENAME_REGEX.cmd

PR

カスタム検索





このエントリーをはてなブックマークに追加