shell.vbsは、UNIXシェルを模倣したユーティリティ関数を提供します。
name | description |
---|---|
shell_unprefix() | プレフィックスを取り除いたライブラリ関数とサブプロシージャを提供します。 |
shell_env() | 環境変数のコレクションを返します。 |
shell_setenv( name, value ) | 環境変数を設定します。 |
shell_argv() | スクリプトに対する引数を配列で取得します。 |
shell_quit( exit_code ) | スクリプトを終了します。 |
shell_sleep( milliseconds ) | 指定されたミリ秒数だけスリープします。 |
shell_echo( message ) | 標準出力に文字列を出力します。 |
shell_print( stream, message ) | 指定されたTextStreamに文字列を出力します。 |
shell_println( stream, message ) | 指定されたTextStreamに文字列を出力します。 |
shell_perror( message ) | 標準エラーに文字列を出力します。 |
shell_readline() | 標準入力から1行読み取ります。 |
shell_cd( destination ) | 現在のワーキングディレクトリを変更します。 |
shell_pwd() | 現在のワーキングディレクトリを返します。 |
shell_system( command ) | 指定されたコマンドを実行します。 |
shell_exec( command ) | 指定されたコマンドを実行します。この関数は、shell_systemの非同期実行バージョンです。 |
shell_redirect( command, outstream, errstream ) | 実行プロセス、または、指定されたコマンドの標準出力とエラーを出力先にリダイレクトします。 |
shell_kill( process ) | 指定されたプロセスを強制終了させます。 |
shell_wait( ByVal processes ) | 指定されたプロセスの終了を待機します。 |
shell_xargs( ary, stmt, opt ) | 指定された配列またはコレクションの各要素毎に指定されたstmt引数(VBScriptステートメント)を実行します。 |
shell_ls( path ) | 指定されたパス配下のフォルダーおよびファイルを返します。 |
shell_lsr( path ) | 指定されたパス配下のフォルダーおよびファイルを返します。この関数はサブフォルダーも探索します。 |
shell_test( ByVal op, ByVal file ) | ファイルのチェックを行います。 |
shell_touch( ByVal timestamp, ByVal file ) | ファイルのタイムスタンプを更新します。 |
shell_cat( ByVal files, ByVal destination ) | 入力ファイルを結合し、指定された出力先に書き込みます。 |
shell_tcat( ByVal files, ByVal destination ) | 入力ファイルを結合し、指定された出力先に書き込みます。 |
shell_bcat( ByVal files, destination ) | 指定されたファイルを結合し、ADODB.Streamに書き込みます。 |
shell_cp( source, destination ) | 指定されたファイルをコピーします。 |
shell_mv( source, destination ) | 指定されたファイルを移動します。 |
shell_mkdir( folder ) | フォルダーを作成します。 |
shell_mkdirs( folder ) | フォルダーを作成します。この関数は、不足している中間フォルダーも作成します。 |
shell_rmdir( folder, force ) | 指定されたフォルダーを削除します。 |
shell_rm( source, force ) | 指定されたファイルを削除します。 |
shell_pushd( destination ) | 現在のワーキングディレクトリーをディレクトリースタックに積んだ後、指定されたディレクトリに変更します。 |
shell_popd() | ディレクトリースタックに積まれた最後のディレクトリーを取り出して、現在のワーキングディレクトリーとして設定します。 |
shell_stdout() | 標準出力へのTextStreamオブジェクトを返します。 |
shell_stderr() | 標準エラーへのTextStreamオブジェクトを返します。 |
shell_stdin() | 標準入力へのTextStreamオブジェクトを返します。 |
プレフィックスを取り除いたライブラリ関数とサブプロシージャを提供します。
このプロシージャを利用すると、よりUnixシェルに近い感覚でスクリプトを記述することがが可能になります。
例えば、shell_cdからは、プレフィックスが取り除かれ、cdという名称のプロシージャが利用できます。
元の関数とサブプロシージャはそのまま利用できます。
example)
cd "c:\"
mkdir "test"
for each f in ls("./")
echo f.name
next
環境変数のコレクションを返します。
@return WScript.Environmentオブジェクト
環境変数を設定します。
@param name 環境変数の名前
@param value 環境変数の値
@return 環境変数の値
スクリプトに対する引数を配列で取得します。
@return 引数の配列
スクリプトを終了します。
@param exit_code 終了コード
指定されたミリ秒数だけスリープします。
@param milliseconds ミリ秒
標準出力に文字列を出力します。
@param message 出力する文字列
指定されたTextStreamに文字列を出力します。
@param stream 出力先のTextStream
@param message 出力するメッセージ
指定されたTextStreamに文字列を出力します。
@param stream 出力先のTextStream
@param message 出力するメッセージ
標準エラーに文字列を出力します。
@param message 出力する文字列
標準入力から1行読み取ります。
@return 読み取られた行の文字列。ストリームの終端の場合、Empty。
現在のワーキングディレクトリを変更します。
@param destination 変更先のディレクトリを表す文字列、または、Folderオブジェクト
@return 変更前のワーキングディレクトリのパスを表す文字列
現在のワーキングディレクトリを返します。
@return 現在のディレクトリパスを表す文字列
指定されたコマンドを実行します。
@return コマンドの終了コード
指定されたコマンドを実行します。この関数は、shell_systemの非同期実行バージョンです。
@return 生成されたプロセスを表すWshExecオブジェクト
実行プロセス、または、指定されたコマンドの標準出力とエラーを出力先にリダイレクトします。
出力先には、TextStreamまたは、Nothingが指定可能です。
Nothingが指定された場合、内容は破棄されます。
@param command 実行コマンドの文字列、または、WshExecオブジェクト
@param outstream 標準出力をリダイレクトする先のTextStreamオブジェクト
@param errstream 標準エラーをリダイレクトする先のTextStreamオブジェクト
@return コマンドの終了コード
指定されたプロセスを強制終了させます。
@param process 強制終了させるWshExecオブジェクト
指定されたプロセスの終了を待機します。
@param processes WshExecオブジェクトまたは、その配列及びコレクション
@return プロセスの終了コードが格納されたDicrtionaryオブジェクト(キー:プロセスID)
指定された配列またはコレクションの各要素毎に指定されたstmt引数(VBScriptステートメント)を実行します。
コレクションの各要素は、valueで参照することができます。
要素の中身がTextStreamオブジェクトであれば、xargsは更にTextStreamから行毎にstmtを適用します。
この時各行は、line変数として参照することができます。
注意: 読み終わったTextStreamはCloseされます。
opt引数は任意のパラメータを渡すことができます。この変数はステートメントの中で利用することができます。
examples)
shell_xargs shell_ls("./"), "shell_echo opt.Replace(value.name,""***"")", re
@param ary ステートメントを適用するCollectionまたは、配列
@param stmt 適用するVBScriptステートメント
指定されたパス配下のフォルダーおよびファイルを返します。
@param path ディレクトリーパスを表す文字列又は、Folderオブジェクト
@return FileとFolderオブジェクトが格納された配列
指定されたパス配下のフォルダーおよびファイルを返します。この関数はサブフォルダーも探索します。
@param path ディレクトリーパスを表す文字列又は、Folderオブジェクト
@return FileとFolderオブジェクトが格納された配列
ファイルのチェックを行います。
この関数は、op引数の値にしたがって、file引数に指定されたファイルのテストを行い、一致していれば、Trueを返します。
-e ファイル又はフォルダーが存在すれば、True
-f ファイルが存在すれば、True
-d フォルダーが存在すれば、True
@param op テスト演算子
@param file テスト対象を表すファイル名
@return True又はFalseの評価結果
ファイルのタイムスタンプを更新します。
ファイルが見つからなければ、空のファイルが作成されます。
以下の例では、対象のファイルのタイムスタンプを現在時刻に設定します。
echo "timestamp is " & shell_touch(empty, "test.dat").DataLastModified
@param timestamp Date型タイムスタンプ
@param file 対象ファイルを表すファイル名又はFileオブジェクト
@return Fileオブジェクト
入力ファイルを結合し、指定された出力先に書き込みます。
入力ファイルには、ファイル名又はFileオブジェクトを、配列または単体で指定できます。
出力先には、出力先ファイル名を文字列で指定することができます。
指定されている場合、destinationをオープンし、入力ファイルの全ての行を書き込みます。
この動作は、shell_tcatの動作です。
出力先が指定されていない場合、shell_catは結合処理を行わず、各入力ファイルのTextStreamオブジェクトを配列で返して終了します。
このTextStream配列は、shell_xargsなどで利用できます。
以下の例では、カレントディレクトリーの全てのファイルを読み取り、正規表現パターンに一致する行を***にマスクして、標準出力に書き出します。
shell_xargs shell_cat(shell_ls("./"),nothing), "shell_echo re.Replace(line,""***"")", re
@param files 入力ファイルとする、ファイル名又はFileオブジェクトの配列
@return TextStreamの配列
入力ファイルを結合し、指定された出力先に書き込みます。
入力ファイルには、ファイル名又はFileオブジェクトを、配列または単体で指定できます。
結合されたファイルは、指定された出力先の現在のポジション以降に書き込まれます。
出力先には、ファイル名、又は、TextStreamが指定できます。
出力先の指定がファイル名である場合には、そのファイルの終端以降に書き込まれます。
以下の例では、カレントディレクトリーのファイルを全て結合し、merge.txtファイルに出力します。
shell_tcat shell_ls("./"), "merge.txt"
@param files 入力ファイルとする、ファイル名又はFileオブジェクトの配列
@param destination 出力先のファイル名、または、TextStreamオブジェクト
指定されたファイルを結合し、ADODB.Streamに書き込みます。
ADODB.StreamのTypeによって、テキスト又はバイナリ結合が切り替えられます。
以下の例では、split1.dmpと、split2.dmpがバイナリ結合されて、merge.dmpファイルに出力されます。
set out = createobject("ADODB.Stream")
out.open
out.type = 2
shell_bcat Array("split1.dmp","split2.dmp"), out
out.savetofile "merge.dmp"
@param files 入力ファイルとする、ファイル名又はFileオブジェクトの配列
@param destination 出力先のADODB.Streamオブジェクト
指定されたファイルをコピーします。
コピー先に同名のファイル、または、フォルダーが存在する場合、上書きされます。
sourceに配列かFilesコレクションが指定された場合、格納されている要素を全てコピーします。
この場合、destinationはディレクトリーを示している必要があります。
@param source ファイルを示す文字列、Fileオブジェクト、Folderオブジェクト、または、それらの配列
@param destination ファイルまたはフォルダーを示す文字列、またはFolderオブジェクト
指定されたファイルを移動します。
sourceに配列が指定された場合、格納されている要素を全て移動します。
この場合、destinationは、ディレクトリを示している必要があります。
@param source ファイルを示す文字列、Fileオブジェクト、Folderオブジェクト、または、それらの配列
@param destination ファイルまたはフォルダーを示す文字列、またはFolderオブジェクト
フォルダーを作成します。
フォルダーが既に存在している場合、この関数はエラー番号58の実行時エラーを発生させて終了します。
@param folder 作成するフォルダー名の文字列
@return 作成されたフォルダーのFolderオブジェクト
フォルダーを作成します。この関数は、不足している中間フォルダーも作成します。
フォルダーが既に存在している場合、この関数はエラー番号58の実行時エラーを発生させて終了します。
@param folder 作成するフォルダー名の文字列
@return 指定されたフォルダーのFolderオブジェクト
指定されたフォルダーを削除します。
@param folder 作成するフォルダー名の文字列
@param force 強制的に削除する場合、True、その他の場合False
指定されたファイルを削除します。
sourceに配列が指定された場合、格納されている要素を全て削除します。
@param source ファイルやフォルダーを示す文字列、Fileオブジェクト、Folderオブジェクト、または、それらの配列
@param force 強制的に削除する場合、True。その他の場合、False。
現在のワーキングディレクトリーをディレクトリースタックに積んだ後、指定されたディレクトリに変更します。
@param destination 新しいディレクトリ
@return 変更前のカレントディレクトリ
ディレクトリースタックに積まれた最後のディレクトリーを取り出して、現在のワーキングディレクトリーとして設定します。
@return 変更前のカレントディレクトリ
標準出力へのTextStreamオブジェクトを返します。
@return 標準入力へのTextStreamオブジェクト
標準エラーへのTextStreamオブジェクトを返します。
@return 標準エラーへのTextStreamオブジェクト
標準入力へのTextStreamオブジェクトを返します。
@return 標準入力へのTextStreamオブジェクト