![]() |
поиск по имени
Добрый день! Помогите со скриптом. Нужно найти файл по имени, например в Program Files, и при его наличии совершить действие с каталогом в котором находиться этот файл.
|
Код:
Get-ChildItem C:\Windows\* -Filter cmd.exe -File -Recurse | Foreach { |
Спасибо
я правильно понимаю, что при таком выражении $a=Get-ChildItem -Path ${env:ProgramFiles(x86)} -Recurse -Filter File.exe | Foreach {$_.DirectoryName} в переменную А будет присвоен путь к папке? |
подскажите пожалуйста, что не так? Почему не работает?
$v=get-psdrive -psprovider filesystem | ForEach-Object -process {Get-ChildItem -Recurse -Filter v.exe} $v |
viko2323,
Код:
$v = get-psdrive -psprovider filesystem | foreach { |
Спасибо за помощь. А что означает в коде
Цитата:
|
Код:
-erroraction silentlycontinue Код:
help about_commonparameters |
Большое спасибо
|
Снова возник вопрос. вроде все работает не не проводит поиск по диску с:\ . В чем проблема?
Код:
$disk=get-wmiobject Win32_LogicalDisk | where {$_.drivetype -eq 3} |
Код:
get-childitem "$($_.deviceid)\" |
Спасибо. А можно на словах в чем разница. Powershell только начал изучать.
|
Потому что такой синтаксис, попробуйте эти два варианта:
Код:
gci C: windows\notepad.exe |
понял спасибо
|
Добрый день. Помогите пожалуйста
Код:
$disk=get-wmiobject Win32_LogicalDisk | where {$_.drivetype -eq 3} Remove-Item : Не удается привязать аргумента к параметру "Path", так как он имеет значение NULL |
Код:
$disk | foreach {get-childitem "$($_.deviceid)\" -Exclude ${env:windir} -recurse -Filter v.exe -force -ea 0 | Remove-Item -Force -Recurse} |
так понятно, но хотелось бы еще понять на будущее как обрабатывать найденные значения вне конвеера
|
Код:
$disk=get-wmiobject Win32_LogicalDisk | where {$_.drivetype -eq 3} |
спасибо
все равно та же ошибка Remove-Item : Не удается привязать аргумента к параметру "Path", так как он имеет значение NULL. |
помогите пожалуйста
|
viko2323, Попробуйте вместо -Path использовать -LiteralPath:
Код:
....{ Remove-Item -literalpath $i.FullName -Recurse -Force } |
Спасибо не помогло. Немного переделал поиск и все пошло
возникла новая головная боль Код:
cls Исключение при вызове "Save" с "0" аргументами: "Не удается сохранить ярлык "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\V\v.lnk"." строка:8 знак:15 + $shortcut.Save <<<< () + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ComMethodTargetInvocation хотя на рабочем столе создает без проблем |
Цитата:
Код:
> (gci $env:allusersprofile 'Start Menu' -rec -force -dir -ea 0).fullname |
Подскажите пожалуйста как узнать куда ссылается ярлык
Цитата:
|
А какой смысл переносить Start Menu? Если и так есть специально для этого предназначенная папка?
Код:
> [environment]::GetFolderPath('CommonStartMenu') |
я ее никуда не переношу
|
Цитата:
|
Подскажите пожалуйста как узнать куда ссылается ярлык
|
viko2323
Код:
$shell = new-object -com wscript.shell |
огромное спасибо
|
Добрый день! Подскажите пожалуйста как из этого поиска исключить каталог Windows
Код:
$disk = get-wmiobject Win32_LogicalDisk | where {$_.drivetype -eq 3} |
viko2323,
Код:
$v = $disk | foreach {get-childitem "$($_.deviceid)\" -Include v.exe -recurse -force -ea 0} | |
но на сколько я понимаю он же все равно сначала выполнит первый блок
Код:
foreach {get-childitem "$($_.deviceid)\" -Include v.exe -recurse -force -ea 0} |
Это как-то помешает конечному результату?
|
Напрямую в корне диска не получится откинуть ненужную директорию, поэтому надо менять код:
Код:
$disks = get-wmiobject win32_logicaldisk | where { $_.drivetype -eq 3 } | foreach { $_.deviceid + '\*' } |
Iska, это увеличивает время выполнения
Foreigner, спасибо. |
viko2323, кроме того что нужно возвращает еще мусор
C:\Program Files (x86)\V C:\ C:\ C:\ C:\ C:\ C:\ C:\ D:\ D:\ D:\ D:\ D:\ D:\ D:\ |
viko2323, У меня возвращает только ту папку, где искомый файл. Так что не знаю. Разве что у меня отличается, то добавьте -ea 0, в примере забыл.
Код:
...(get-childitem $_ v.exe -recurse -force -ea 0)... |
Добрый день. Вопрос немного не в тему. При запуске cmd файла с кодом
Код:
powershell.exe " \\domen.loc\dfs\domenInstall\v.ps1" |
Добрый день. Есть один интересный вопрос. Есть ли возможность в powershell проводить копирование директорий с файлами (copy-item) с разной глубиной вложений с контролем выполнения и если не скопировалось повторить операцию?
|
viko2323:
Цитата:
|
Прошу прощения. Эту тему можно закрывать.
|
Цитата:
Также можете пометить сообщения которые в данном вопросе ("поиск по имени"), ответы которых помогли решить вашу проблему: Как я могу отметить сообщение полезным? |
Время: 23:06. |
Время: 23:06.
© OSzone.net 2001-