windows環境でのスクリプトの書き方

実現したいこと

windows環境でスクリプトを動かす。
具体的には、
・スクリプトを実行するユーザーがOracleであることを確認のうえ、実行
∟Oracleユーザーでない場合はエラーコードを出力

・引数の個数をチェックする

・windows環境でも使用できるsed -eコマンドに代わるコマンドがあれば教えていただきたい。(ダウンロード以外で)

前提

Linux環境でバックアップスクリプトを作成しました。それをwindows環境でも使用できるように修正しているのですが、初めてのwindows環境で分からないことが大変多く、いくつか質問させていただきたいです。
バージョンはWindows Server 2016 DAtacenter Evaluationで、コマンドプロンプトからスクリプトを実行しようと思ってます。


・スクリプトを実行するユーザーがOracleであることを確認のうえ、実行
∟Oracleユーザーでない場合はエラーコードを出力

Linux環境では以下のIF文でエラーなく実行できたのですが、windows環境では「whoami の使い方が誤っています。」をエラーが表示されます。こちら調べても当てはまる記事が見当たらなく、windows環境での正しい記載方法をご教示いただきたいです。

if [ `whoami` != "oracle" ] ; then echo "ERROR : Not Run User." exit 1 fi


・引数の個数をチェックする
また、引数にはデータベース一意名を設定しており、後にファイル名などでデータベース一意名を使用するため、
変数"TGTDBUN"(データベース一意名)に引数を挿入したい。
こちら、設定している引数は1つです。Linux環境では以下のようにし、実行できました。

if [ $# -ne 1 ] ; then echo "USAGE : $0 \"DB_UNIQUE_NAME\"" exit 1 else TGTDBUN=$1 fi

windows環境では「$# の使い方が誤っています。」をエラーが出てしまいます。
$#と1をダブルクォーテーション(")で囲むという記事も出てきましたが、試してもダメでした。
こちらもwindows環境での正しい記載方法をご教示いただきたいです。


・windows環境でも使用できるsed -eコマンドに代わるコマンドがあれば教えていただきたい。(ダウンロード以外で)
大変お恥ずかしいのですが、下記Linux環境で使用されているsedコマンドも理解できておらず、もし可能であればこちらもご教示いただきたいです・・

export FNDNAME=`basename ${SHLPATH} | sed -e 's/\.[^\.]*//'`

s/置換したい文字列/置換後文字列/で、最初にマッチした文字列だけ置換するということは理解しましたが、
\.[^\.]*の部分が調べても出てこず、理解に苦しんでおります。

経験が浅く、言葉足らずな部分もあるかもしれませんが、ご教示いただけると幸いでございます。

コメントを投稿

0 コメント