@echo off
setlocal
rem Get fullpath of 1st argument.
for %%A in ("%~1") do set "psfile=%%~fA"
rem Save log in same directory of 1st argument.
set "logfile=%~dp1log.txt"
if defined psfile (
rem Run the PS1 file with remaining arguments and tee the piped stdout stream.
Powershell.exe -ExecutionPolicy ByPass -Command "&{&'%psFile%' '%~2' '%~3' '%~4' '%~5' '%~6' | Tee-Object -FilePath '%logfile%'}"
)
Цикл for
получит полный путь 1-го аргумента
если полный путь не был пройден.
Файл журнала рекомендуется использовать как полный путь, чтобы обеспечить успех,
и знание того, где оно сохранено.
Одинарные кавычки, окружающие пути, помогают с любым
возможный пробел и т. д.
Протестировано с PS1, чтобы показать переданные аргументы:
$args
, который, кажется, показывает все стандартный вывод с тестом.
Чтобы включить другие потоки, просмотрите О перенаправлении