2016-05-27 3 views
0

をモンゴする:%1、%2としてC#.NETコードからこのバッチに渡され& var2frombatchをvar1frombatchパス変数は、私が行うスクリプト持つコマンド

mongo localhost:27017/MyDB --eval "db = connect("localhost:27017/SomeDB")" 
mongo localhost:27017/MyDB --eval "db.copyDatabase(var1frombatch, var2frombatch)" 
PAUSE 

いるが、私の質問はどうすれば私の--eval doeで変数を使うことができますか?

私は

mongo localhost:27017/MyDB --eval "db = connect("localhost:27017/SomeDB")" 
mongo localhost:27017/MyDB --eval "db.copyDatabase('%1', '%2')" 
PAUSE 

を試みたが、

+0

パーサーは何を実行しますか? (表示するには 'echo 'で実行してください) – Stephan

+0

バッチ変数として%1と%2を読み取ることができないものはありません – user1452954

+0

あなたの質問は「どのようにバッチファイル内の変数を使用できますか」ではなく、バッチファイルへ "悲しいことに、私はC#でお手伝いできません。 – Stephan

答えて

1

MongoDBのコマンドライン上でシェルスクリプトを実行するための機能を持って動作しませんでした。 あなたのケースでは、複数の操作のための1つのjavascriptが複数のmongodb関数を評価するよりもうまく機能します。

ランのようなスクリプト:

%MONGODBDIR%mongo localhost:27017/SMSManagement --eval "var dbA = '%1', dbB = '%2'" %SCRIPTSDIR%\shellscript.js 

そして、あなたのshellscript.jsで

print("Copying database from " + "database:" + dbA + " to " + "database:" + dbB); 

var result = db.copyDatabase(dbA, dbB) 
printjson(result); 

結果のように出力されます。これについて

{ "ok" : 1 } 

詳しい情報は、あなたがここで読むことができます:https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/

+0

ご回答いただきありがとうございます。コードが機能せず、プログラムが%1と%2を認識できません--eval – user1452954

+0

%1と%2が引数であるとお伝えしましたか?スクリプトをbatファイルに置き、batch.bat "DB_A" "DB_B" 'を呼び出すと、%1と%2は想定どおりに動作するはずです。 – Kevin

+0

ええ、私は結ばれ、その作業は今、たくさんの人に感謝、それは非常に有用だった! – user1452954

関連する問題