powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Програмирование в powerShell
25 сообщений из 45, страница 1 из 2
Програмирование в powerShell
    #39225285
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть список файлов, например:
1.log 27.04.2016 00:01
2.log 27.04.2016 00:02
3.log 27.04.2016 00:03

и есть еще много других файлов с разной датой изменения, вопрос как мне через get-childitem отобрать именно эти файлы: 1.log, 2.log, 3.log ????
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39226970
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014 мне через get-childitem отобрать именно эти файлы: 1.log, 2.log, 3.log ????

ls 1.log,2.log,3.log
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39420470
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть файл txt есть скрипт, который показывает мне инфу по ПК.
Загвоздка в том, что постоянно лезть в скрипт или юзать read-host не вариант.
Не обходим инструмент (код), который будет выполнять следующее:

1. анализировать построчно txt файл находящийся в той же директории где сам скрипт (или exe файл)
2. каждую строку объявлять в скрипте как переменную $server, которая будет использоваться в сборе инфы о ПК

пример

servers.тхт
файл содержит имена серверов:
tb1
tb2
tb3

имя переменной ($server) для командлета
Get-WMIObject Win32_Volume -filter "DriveType=3" -computer $server ................................
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39420487
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
for /?
for /f %A in (список.txt) do @wmic ... %A ...
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39420507
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: powershell
1.
2.
3.
4.
5.
6.
7.
# 1. анализировать построчно txt файл находящийся в той же директории где сам скрипт (или exe файл) 
# 2. каждую строку объявлять в скрипте как переменную $server, которая будет использоваться в сборе инфы о ПК

gc $PSScriptRoot\servers.txt | %{   
    $server = $_
    Get-WMIObject Win32_Volume -filter "DriveType=3" -computer $server .....
}
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39425396
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, что нужно добавить\изменить в этом коде, чтобы можно было проверить каталог:
наличие файлов
подкаталогов на наличие в них файлов?

данный скрипт работает только если C:\TEST есть или нет файлов
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
$sPath = "C:\TEST\*.*"
$files = test-path $sPath
if ($files -eq "true")
{
cls
write-host "папка не пуста" -ForegroundColor green
}

else {
cls
write-host "папка пуста" -ForegroundColor red
}
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39427558
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: powershell
1.
(ls "C:\TEST\*.*" | measure).Count -gt 
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39427559
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharper
Код: powershell
1.
(ls "C:\TEST\*.*" | measure).Count -gt 0
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39428175
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спс буду пробывать
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39432544
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал пару скриптов, через бат ник их запускаю.
Если стартую сам батник то все ОК, если батник перемещаю в окно cmd то получается. что первый скрипт запускается, а второй не запускается

Текст батника

Код: powershell
1.
2.
powershell -sta -file1.ps1 >log.txt
powershell -sta -file2.ps1



выяснил что при простом перемещение батника в смд, например так
С:\document\sas\>D:\test\test.bat

ошибка, что аргумент file2.ps1 -file не обнаружен. Файла в указаном пути нет.

хотя все скрипты и сам батник находятся в одном каталоге

Как заставить батник, чтобы он запустил скрипты?
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39432552
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего то, что запускает батник устанавливает другую рабочую папку.
Варианты:
1. Указать правильную рабочую папку при вызове
2. Указывать полные пути к файлам .ps1
3. Явно менять рабочую папку (команда cd)

Выбери любой, какой нравится.
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39432555
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014получается. что первый скрипт запускается, а второй не запускается
возможно первый скрипт меняет рабочую папку.
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39432576
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем спасибо буду экспериментировать с вариантами
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39433269
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кому интересно, в начале батника прописал такую строку
cd /d "%~dp0"

и все откуда бы я не запускал батник и каким способом то все работает
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39433277
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых - pushd, а не cd
Во-вторых - лучше дописывать %~dp0 к имени всех "рядом расположенных". Этот вариант не требует смены текущего каталога, что может быть существенно.
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39433843
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovВо-первых - pushd, а не cd
Во-вторых - лучше дописывать %~dp0 к имени всех "рядом расположенных". Этот вариант не требует смены текущего каталога, что может быть существенно.

pushd, а не cd почему так?
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39433912
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если pushd используется внутри setlocal - текущий каталог будет восстановлен после endlocal. Если не используется - по завершению скрипта.
Для cd ничего такого не происходит и, если ваш пакетник будет использоваться совместно с другими - можно долго соображать, почему "по отдельности работает, а вместе - нет".
Простое, в общем, правило: не тобою установлен текущий каталог - не тебе его и менять.
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39436940
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
код батника:

Код: powershell
1.
2.
3.
4.
5.
6.
chcp 1251
cd /d "%~dp0"
Powershell Set-ExecutionPolicy Unrestricted
Powershell Get-ExecutionPolicy
Powershell -STA -File script.ps1 > resultat.txt
resultat.txt



=========================================================================================================================

код PS скрипта:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
cls
$log_1 = read-host "Укажите первый файл"
$log_2 = read-host "Укажите второй файл"
#-DifferenceObject -  Задает объекты, которые будут сравниваться с эталонными.
#-ReferenceObject - Объекты, используемые при сравнении в качестве эталона.
Write-Host "Сравнение файлов:"
''
write-host "Отличие второго файла от первого:" -ForegroundColor red
'' 
compare-object -referenceobject $(get-content $log_1) -differenceobject $(get-content $log_2) | format-table -Property InputObject -HideTableHeaders




===========================================================================================================================

1. Если запускаю скрипт из оболочки ISE и задаю файлы в пути, которых есть пробелы, а так же в именах файлов то выполнение
скрипта проходит без проблем.

2. Если запуск скрипта через батник, то тут и начинаются проблемы, если в пути и в имени файла есть пробелы. Появляются ошибки такого вида:

Код: powershell
1.
2.
3.
4.
5.
6.
[color=red]Get-Content : Не удалось найти диск. Диск с именем ""E" не существует.
E:\PowerShell_docs\Examples\compare_files 
\script.ps1:15 знак:46
+ compare-object -referenceobject $(get-content <<<<  $log_1) -differenceobject $(get-content $log_2)  
| format-table -P
roperty InputObject -HideTableHeaders[/color]




Прочитал инфу про эту проблему, решение, что надо файл или путь к файлу заключать в кавычки вида "", но заключать что?
"script.ps1" пробовал, решение не помогло, да и нет смысла в этом, так как ошибка явно указывает на совершено другие файлы

или есть другой вариант?
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39436942
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: powershell
1.
compare-object -referenceobject $(get-content "$log_1")

?
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39436997
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Код: powershell
1.
compare-object -referenceobject $(get-content "$log_1")

?

не помогло
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39436998
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как допустим сказать повершелу, чтобы он мне написал сколько было удалено пустых строк в файле?
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39436999
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с выводом инфы,
удалено пустых строк: 12
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39437390
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014с выводом инфы,
удалено пустых строк: 12

Удалено при помощи чего?
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39437628
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharperSAS2014с выводом инфы,
удалено пустых строк: 12

Удалено при помощи чего?

(get-content -path $file) | where-object -filterscript {$_.trim() -ne ''} | set-content -path $file
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39437717
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В как заставить Повершэл а точнее select-string искать русские буквы в тексте?

1. Создал файл в нем прописал слова на русском языке, например Привет Мир

2. пишу Select-string -path 1.txt "Привет"

ноль результата
...
Рейтинг: 0 / 0
25 сообщений из 45, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Програмирование в powerShell
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]