Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 11

Запись действия Start-Process в лог

31.08.2019, 17:09. Показов 3096. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем приятных выходных.

Кто знает, как выполнить запись действий по запускаемому процессу из Powershell?

Мои исходные:
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$cfg = Import-CliXML C:\distribs\tec\config.xml
$namePC = $env:COMPUTERNAME
$namePC = $namePC.TrimStart("-")
$time = Get-Date -Format t | foreach {$_ -replace ":", "."} 
$date = Get-Date -Format d
$FileName = ( $namePC + '_' + $date + '_' + $time + '.log')
$FileName
$PathLocalFile = $cfg.Logs + "\"
$log = New-Item -Path ($PathLocalFile + $filename) -ItemType File
"Начало" | out-file $log
 
$date | out-file $log -append
$time | out-file $log -append
 
   SWITCH ($cfg.mode)
   {
     0 { }
     1 {Start-Process -FilePath C:\distribs\tec\step1.bat -Verb runas} 
     2 {Write-Host "Переменная cfg.mode = 2"}
     3 {Write-Host "Переменная cfg.mode = 3"}
     4 {Write-Host "Переменная cfg.mode = 4"}
     5 {Write-Host "Переменная cfg.mode = 5"}
     default {Write-Host "Неопределенное значение"}
   }
По умолчанию, $cfg.mode равен 1 и выполняется соответствующая строчка, где запускается батник. Но блин, как мне записать все его действия в $log ?
Либо есть второй вариант, как в cmd передать переменную $log, чтобы он сам знал куда записывать лог?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.08.2019, 17:09
Ответы с готовыми решениями:

Start-Process с аргументом -Wait
Добрый день! Хочу запустить процесс, дождаться окончания его выполнения, и только потом продолжать выполнение команд в PowerShell. В...

Start-Process в Windows XP и Windows 7
Здравствуйте! Изучаю сейчас PowerShell версии 2.0, возникла следующая проблема: при использовании Start-Process с ключом...

Запись в лог
Вопрос поднимала в рамках другой темы. Так как там это обсуждение не в тему, создала новую тему. Хотела уточнить. Хочу вносить...

6
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,664
Записей в блоге: 65
02.09.2019, 07:29
PowerShell
1
.\test.bat >> bat.log
Вот так должно получиться

подробнее:

PowerShell
1
get-help about_Redirection -Detailed
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
02.09.2019, 10:22
Цитата Сообщение от f1r3man Посмотреть сообщение
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
$cfg = Import-CliXML C:\distribs\tec\config.xml
$namePC = $env:COMPUTERNAME
$namePC = $namePC.TrimStart("-")
$time = Get-Date -Format t | foreach {$_ -replace ":", "."} 
$date = Get-Date -Format d
$FileName = ( $namePC + '_' + $date + '_' + $time + '.log')
$FileName
$PathLocalFile = $cfg.Logs + "\"
$log = New-Item -Path ($PathLocalFile + $filename) -ItemType File
"Начало" | out-file $log
$date | out-file $log -append
$time | out-file $log -append
По моему, очень много лишних действий:

PowerShell
1
2
3
4
5
6
$cfg  = Import-CliXML -Path 'C:\distribs\tec\config.xml'
$date = Get-Date -Format "dd.MM.yyyy_hh.mm"
$log  = "$($cfg.Logs)\$(($env:COMPUTERNAME).TrimStart("-"))_$date.log"
 
"Начало" | Set-Content -Path $log -Encoding UTF8
$date | Add-Content -Path $log
1
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 11
02.09.2019, 14:12  [ТС]
Я так пробовал писать.

Но дело в том, что я не знаю имени лога и по этому передаю переменную, которую cmd не хавает. Cmd принимает переменную, как строку)

Я на самом деле решил пойти другим методом:
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
$step1 = Start-Process -FilePath C:\distribs\tec\step1.bat -RedirectStandardOutput C:\distribs\tec\logs\step1.log -WindowStyle Hidden -Wait | Stop-Process
$step2 = Start-Process -FilePath C:\distribs\tec\step2.bat -RedirectStandardOutput C:\distribs\tec\logs\step2.log -WindowStyle Hidden -Wait | Stop-Process
$step3 = Start-Process -FilePath C:\distribs\tec\step3.bat -RedirectStandardOutput C:\distribs\tec\logs\step3.log -WindowStyle Hidden -Wait | Stop-Process
$step4 = Start-Process -FilePath C:\distribs\tec\step4.bat -RedirectStandardOutput C:\distribs\tec\logs\step4.log -WindowStyle Hidden -Wait | Stop-Process
$compare = Add-Content -Path $log -Value (Get-Content -Path C:\distribs\tec\logs\* -Filter step*.log)
SWITCH ($cfg.mode)
   {
     1 {$step1; $step2; $step3; $step4; $compare; $exp; exit} 
     2 {$step1; $step2; $step4; $compare; $exp; exit}
     3 {$step1; $step2; $step3; $step4; $compare; exit}
     default {Write-Host "Неопределенное значение MODE"}
   }
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
02.09.2019, 14:43
Цитата Сообщение от f1r3man Посмотреть сообщение
передаю переменную, которую cmd не хавает
А что у вас cmd делает? Может проще всё в PS-скрипт перенести?
1
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 11
02.09.2019, 14:54  [ТС]
Цитата Сообщение от KDE777 Посмотреть сообщение
А что у вас cmd делает? Может проще всё в PS-скрипт перенести?
Самые обычные команды: ping, tracert, tcping и iperf3 запускает. Вариант с аналогом ping и tracert на PS не устраивает.
И в принципе я решил свою проблему, правда другим методом.
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
02.09.2019, 15:19
Цитата Сообщение от f1r3man Посмотреть сообщение
Самые обычные команды: ping, tracert, tcping и iperf3 запускает. Вариант с аналогом ping и tracert на PS не устраивает.
Если не устроили штатные Test-Connection, Test-NetConnection (–TraceRoute), Resolve-DnsName, Get-NetTCPConnection, можно ведь было вызывать ping, tracert, tcping, iperf3 (и передавать им нужные параметры) прямо из PS-скрипта... Как, например, часто делают с robocopy.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.09.2019, 15:19
Помогаю со студенческими работами здесь

Удалить каталог и сделать запись в лог-файл
Доброго времени суток. Необходим скрипт, который бы удалял заранее заданные каталоги и делал запись в конец лог-файла, т.е. работал бы...

IntelliJ IDEA. Cannot start process
Добрый день всем программистам)) Помогите разобраться с программой IntelliJ IDEA, а именно заново установил программу , поставил исходники...

Process.Start() Не запускает системные утилиты
Имеется путь до msconfig: C:\Windows\System32\msconfig.exe Битность: x64 Пытаюсь вызвать:...

Не все параметры Process.Start отрабатывают
Мне необходимо выполнить цепочку(например): Process.Start("cmd.exe", "c:\ -dir -w >d:\1.txt") Проблема в том, что все отрабатывает,...

System.Disagnostics.Process.Start Error
У меня есть два консольных приложения. Назовём их ConsoleApp и ConsoleChecker Оба работают с одной и той же базой sqlite3. Смысл в том,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru