我正在尝试使用.bat文件执行MongoDB命令(用于创建数据库)。
为此,我尝试过:
cd C:\Program Files\MongoDB\Server\3.4\bin
mongo
mongo --eval "use MyDatabase"
pause
但它给出了错误missing ; before statement @(shell eval):1:4
我该如何解决这个问题?
方:我已经完成了MongoDB SyntaxError: missing ; before statement @(shell)
答案 0 :(得分:8)
你可以尝试:
cd Program Files\MongoDB\Server\3.4\bin
mongo.exe
mongo.exe --eval "use MyDatabase"
pause
我使用的.bat文件正常工作并包含此
cd \Program Files\MongoDB\Server\3.2\bin
mongod.exe
pause
修改强>
我测试了这样的文件,它工作正常(创建数据库,集合和文档)
<强> mongodb.bat 强>
cd \Program Files\MongoDB\Server\3.2\bin
mongo.exe db-mydb --eval "db.yourCollection.insert({key:'value'});"
pause
编辑2
如果你想在后台运行你的.bat文件,我已经制作了一个正常工作的.VBS文件
<强> mongodb.VBS 强>
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\Path\To\Your\mongodb.bat" & Chr(34), 0
Set WshShell = Nothing
希望有所帮助
答案 1 :(得分:2)
START&#34; runas / user:administrator&#34; cmd / K&#34; cd C:\ Program Files \ MongoDB \ Server \ 3.4 \ bin&amp; mongod.exe --dbpath c:\ data \ db&#34;
TIMEOUT / T 10 START
START&#34; runas / user:administrator&#34; cmd / K&#34; cd C:\ Program Files \ MongoDB \ Server \ 3.4 \ bin&amp; mongo.exe&#34;
答案 2 :(得分:0)
尝试一下:
cd C:\Program Files\MongoDB\Server\3.4\bin
mongo.exe
mongo.exe --eval "use MyDatabase"
pause
或使用包含命令的文本文件script.txt并将批处理文件编写为:
cd C:\Program Files\MongoDB\Server\3.4\bin
mongo.exe mydb < script.txt
如果文件位于其他位置,则可以使用完整路径。