Бекап MySQL под Windows с помощью Wsf


Такое простое решение:

<?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>