Такое простое решение:
<?xml version="1.0" encoding="Windows-1251"?>
<package>
<job>
<runtime>
<description>dbbackup.wsf, v1.00
</description>
<unnamed
name="database"
type="string"
required="false"
helpstring="Название базы данных"
/>
</runtime>
<script language="JScript">
<![CDATA[
function GetCurrentDir() {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder(".");
var x = f.Path;
delete fso;
return x;
}
function GetFileName(v) {
var d;
if (v!=null) d = new Date(v);
else d = new Date();
var day = d.getDate();
var month = (d.getMonth() + 1);
var year = d.getFullYear();
if (month<10) month = "0" + month;
if (day<10) day = "0" + day;
return (""+year+month+day+".sql");
}
function Main() {
var dbname = WScript.Arguments.Unnamed.Item(0);
var filename = GetCurrentDir()+"\\"+GetFileName();
var cmd = [
"c:\\mysql\\bin\\mysqldump.exe",
"-u", "root",
"-ppassword",
"--databases",
"--add-drop-database",
"--hex-blob",
"--extended-insert=FALSE",
"--default-character-set=cp1251",
"--comments",
dbname
];
cmd = ""+cmd.join(" ");
var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec(cmd);
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.CreateTextFile(filename, true);
var text = "";
while (!oExec.StdOut.AtEndOfStream)
{
text = oExec.StdOut.Read(256);
f.Write(text);
}
f.Close();
delete fso;
delete WshShell;
}
if (WScript.Arguments.length<1) {
WScript.Arguments.ShowUsage();
}
else {
Main();
}
]]>
</script>
</job>
</package>
Bat/Wsh/Powershell Справочник v0.05 © 2007-2025 Igor Salnikov aka SunDoctor