FC2ブログ
 

Technology へようこそ
ここは技術者の「経験」と「ノウハウ」のブログです


--年--月--日

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


2010年03月21日

バッチファイルでの小技4連発

久しぶりにWindowsのバッチファイルを書く機会があったので、
そのときお世話になった小技を紹介。
全体的に脈絡ないのはご容赦願いますw

・PsExecを利用したリモートPCからのバッチ実行
set REMOTEIP=192.168.1.1
set REMOTEUSR=Administrator
set REMOTEPWD=xxxxx
set REMOTEBAT=C:\Remote.bat
set PARAM=BatchParameter

psexec \\%REMOTEIP% -accepteula -u %REMOTEUSR% -p %REMOTEPWD% "%REMOTEBAT%" %PARAM%

: PsExecは、指定したリモートPC上に存在するプログラムを
: リモートPC上で実行するためのコマンドラインツールです。
: EXEファイルひとつで動作するので導入に手間がかかりません。
: 詳しくはMicrosoftのダウンロードページをご覧下さい。

・IPアドレスの変更
set ADDRESS=192.168.1.1
set MASK=255.255.255.0
set GATEWAY=192.168.1.254
set METRIC=1

netsh interface ip set address "ローカル エリア接続" static %ADDRESS% %MASK% %GATEWAY% %METRIC%

: 上記の例では固定IPアドレス(static)を指定していますが、
: DHCPクライアントとする設定も可能です。
: 詳しくは「netsh」コマンドをお調べ下さい。

・リモートPCへのファイルコピー
set REMOTEPATH=\\192.168.1.1\C$
set REMOTEUSR=Administrator
set REMOTEPWD=xxxxx

net use %REMOTEPATH% /delete
net use %REMOTEPATH% %REMOTEPWD% /user:%REMOTEUSR%

set SRC=C:\FILE.TXT
set DST=%REMOTEPATH%

xcopy /c /y %SRC% %DST%

: これといって特別な処理ではありませんが、
: net use を利用してネットワーク接続する際、
: 複数接続エラーが出てしまう場合、上記のように
: いったん接続を削除しておくと具合がよろしいです。
: まぁ、備忘録代わりということで…。

・「DB名(復元しています...)」状態のSQLServerデータベースを利用可能な状態にする
set SQLCMDSERVER=(local)
set SQLCMDDBNAME=master
set SQLCMDUSER=sa
set SQLCMDPASSWORD=xxxxx
set DBNAME=TESTDB

sqlcmd -b -Q "RESTORE LOG [%DBNAME%] WITH RECOVERY;"

: 「DB名(復元しています...)」メッセージは、NORECOVERYオプションを付けて
: データベースをリストアした場合に表示されます。
: NORECOVERYオプションは「リストアデータに続きがある」という指定で、
: データベースは一時的に利用不可の状態となりますが、
: 後続となる差分バックアップデータやトランザクションログデータが存在しない場合は
: 上記の要領で強制的にロールフォワードさせて利用可能な状態に戻せます。
: ちなみに、SQLCMDxxxxx環境変数を定義しておくと sqlcmd が勝手に参照してくれて便利。
: まぁ、でも正直あまりバッチファイルとは関係のない話ではありますw

[ posted by ken ]

この記事に対するコメント


この記事に対するコメントの投稿














管理者にだけ表示を許可する



この記事に対するトラックバック
トラックバックURL
http://comfair2.blog24.fc2.com/tb.php/459-2587e36b
この記事にトラックバックする(FC2ブログユーザー)











上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。