Перенаправить вывод из команды в пакетном файле, выход которого уже перенаправлен?

Я искал высоко и низко, но все предложения и подсказки, которые я нашел, по какой-то причине не работают. У меня есть пакетный файл, который вызывается как таковой:

cmd /C "automateMyProgram.bat >> automation.log 2>>&1" 

Это отлично работает: automation.log загружается со всеми stdout и stderr для этого конкретного командного файла. Однако в этом пакетном скрипте есть следующая команда:

 start php updateDB.php param1 param2 ^> updateDB.log 

PHP-скрипт выполняется просто отлично и отлично читает в параметрах, но updateDB.log никогда не создается. Я убедился, что сообщение об ошибке php в файле php.ini настроено на вывод ошибок в интерфейс командной строки. В php-скрипте есть несколько выражений эха, которые мне нужно записать в журнал, но по какой-то причине они не выводятся. Я читал, что если вы используете команду start для вызова программы, вы должны использовать оператор каретки для перенаправления вывода, поскольку программа запускается в новом процессе. Я также пробовал:

 start php updateDB.php param1 param2 >> updateDB.log 

и это тоже не сработало. Поэтому я тогда попытался:

 start /B "Database Update" "php" "param1" "param2" >> updateDB.log 

и это не работает из пакетного файла, но это произошло, когда я копировал и вставлял его непосредственно в CMD-окно на рабочем столе.

Может кто-нибудь из вас знает, как я могу перенаправить вывод скрипта php из пакетного файла?

Спасибо за ваше время и помощь!

Это, вероятно, самое простое решение:

 start cmd /c "php updateDB.php param1 param2 > updateDB.log" 

или, если вы хотите включить сообщения об ошибках в updateDB.log,

 start cmd /c "php updateDB.php param1 param2 > updateDB.log 2>&1" 

Вот пример кода, который работал в файле BATCH, запускающем VBScripts с помощью команды START. Он будет выполнять отдельный процесс и помещать результаты в указанный файл журнала.

 rem **Setting the passed device to run against to a varible** SET Audit_Device=%1 rem **Launching "_SomeScript.vbs" in a seperate window** start "WindowTitle" /d%~dp0 cmd /C cscript.exe ^"%~dp0_SomeScript.vbs^" %Audit_Device% ^>^"%~dp0%Audit_Device%_SomeScriptLogFile.txt^" rem **Launching "ListPermissionsForAllShares-Basic-and-Detailed.vbs" in a seperate window** start "List Share Permission" /d%~dp0 cmd /C cscript.exe ^"%~dp0ListPermissionsForAllShares-Basic-and-Detailed.vbs^" %Audit_Device% ^>^"%~dp0%Audit_Device%_Share_Permissions.txt^"