|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Перезаписать выводимые данные |
|
|
PowerShell - [решено] Перезаписать выводимые данные
|
Пользователь Сообщения: 80 |
Профиль | Отправить PM | Цитировать Добрый День!
Никак не получается выполнить перезапись выходных данных. Пробовали разные методы вывода типа (out-file, Add-Content и др.). Конечно вероятность, что в течении минуты будет такая потребность мала, но просто интересно как это осуществить. cls $GetInfo = Get-ADUser -Properties SamAccountName -filter {UserWorkstations -like "*"} -SearchBase "DC=s,DC=o,DC=r" ForEach ($i in $Getinfo) { try { $i | Set-ADUser -Clear UserWorkstations -ErrorAction Stop } catch { $datetime = Get-Date -Format "dd.MM.yyyy_HH_mm" $file = "ad-" + $datetime + ".txt" $folder = "d:\1" + $file_name $i.SamAccountName | out-file -FilePath $folder\$file -Append } } |
|
Отправлено: 17:07, 10-12-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Как именно это: «Никак не получается выполнить перезапись» выражается?
|
Отправлено: 17:19, 10-12-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать Т.е. если в течении минуты выполнить два раза скрипт данные просто добавляются, а не перезаписываются
Хотелось бы видеть один файл воктором данные будут присутствовать только один раз |
Отправлено: 17:34, 10-12-2017 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата lox-ness:
Цитата lox-ness:
Но в чём смысл перезаписи — для Вашего кода — мне совершенно невдомёк: каждая последующая ошибка будет затирать предыдущую (в течении минуты). Спрашивается — в чём глубинный смысл такого поведения?! |
||
Отправлено: 17:42, 10-12-2017 | #4 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать Если убрать -Append, то в файл выводиться только первая ошибка которая присутствует, а их там несколько
Пример с - Append - получаем 1,2,3 без -Append - получаем только 1 |
|
Отправлено: 17:46, 10-12-2017 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата lox-ness:
Вам следует определиться с тем, чего Вы хотите. И внятно сие изложить. Вот у меня есть предположение, что на самом деле Вам нужно, чтобы в файл попадали всё ошибки за одно исполнение кода. И на самом деле Вам нужно банально вынести задание имени файла вовне цикла: Скрытый текст
Clear-Host $datetime = Get-Date -Format "dd.MM.yyyy_HH_mm" $file = "ad-" + $datetime + ".txt" $folder = "d:\1" + $file_name $GetInfo = Get-ADUser -Properties SamAccountName -Filter { UserWorkstations -like "*" } -SearchBase "DC=s,DC=o,DC=r" ForEach($i in $Getinfo) { try { $i | Set-ADUser -Clear UserWorkstations -ErrorAction Stop } catch { $i.SamAccountName | out-file -FilePath $folder\$file -Append } } чтобы оно не могло меняться во время его выполнения. |
|
Отправлено: 18:05, 10-12-2017 | #6 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать Вы все верно поняли, "Вот у меня есть предположение, что на самом деле Вам нужно, чтобы в файл попадали всё ошибки за одно исполнение кода"
в предложенном вами варианте проблема сохраняется. Чтобы в файл попадали всё ошибки за одно исполнение кода и перезаписывали предыдущие (т.е. чтоб в файле был всегда один набор ошибок, а не две копии этих ошибок) |
Отправлено: 18:43, 10-12-2017 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата lox-ness:
Цитата lox-ness:
|
||
Отправлено: 18:55, 10-12-2017 | #8 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать В самом начале я об этом и писала, что если код запустить в течении минуты, то ошибки будут дописываться
И хотелось бы понять как вывести данные чтобы ошибки перезаписывались в файле, а не добавлялись Можно ведь предположить, что в имени файла не будет привязки к дате и времени, изначально так и пытались сделать. |
Отправлено: 19:03, 10-12-2017 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать lox-ness, в этом случае:
Цитата lox-ness:
Например, удаление — можно сначала проверять существование файла, а затем удалять, а можно тупо молча подавлять ошибку: Скрытый текст
Clear-Host $sOutFile = Join-Path -Path 'd:\1' -ChildPath "ad-$(Get-Date -Format 'yyyy.MM.dd_HH-mm').txt" Remove-Item -Path $sOutFile -ErrorAction SilentlyContinue $GetInfo = Get-ADUser -Properties SamAccountName -Filter { UserWorkstations -like "*" } -SearchBase "DC=s,DC=o,DC=r" ForEach($i in $Getinfo) { try { $i | Set-ADUser -Clear UserWorkstations -ErrorAction Stop } catch { $i.SamAccountName | out-file -FilePath $sOutFile -Append } } |
|
Отправлено: 19:15, 10-12-2017 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Как перезаписать 512 байт MBR. | HarrysFerrarievich | Накопители (SSD, HDD, USB Flash) | 26 | 26-02-2015 01:37 | |
CMD/BAT - GUI окно, в которое вводяться данные передает эти данные в cmd файл, (редактирует) | Neqste | Скриптовые языки администрирования Windows | 3 | 07-09-2011 05:31 | |
DISM успешно монтирует образ, но файлы нельзя ни скопировать, ни перезаписать | Ufalk | Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista | 16 | 10-04-2011 00:49 | |
(решено) Можно ли перезаписать или восстановить завирусованный файл kernel32.dll | AlexKKK | Защита компьютерных систем | 7 | 19-10-2005 18:38 | |
Учетные данные | buffer26 | Сетевые технологии | 5 | 08-06-2004 21:13 |
|