|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Get-ChildItem и обратный слэш в пути |
|
|
PowerShell - Get-ChildItem и обратный слэш в пути
|
|
Новый участник Сообщения: 43 |
Добрый день. Подскажите, пожалуйста, что нужно почитать, чтобы понять причину странного поведения Get-ChildItem?
Сам код: Get-ChildItem mkdir Test1\Test2\Test3 Get-ChildItem -Recurse '.\Test1' Get-ChildItem -Recurse '.\Test2' Get-ChildItem -Recurse '.\Test3' Get-ChildItem -Recurse '.\Test1\' Get-ChildItem -Recurse '.\Test2\' Get-ChildItem -Recurse '.\Test3\' mkdir T\Test2\Test3 Get-ChildItem -Recurse '.\Test1\' Get-ChildItem -Recurse '.\Test2\' Get-ChildItem -Recurse '.\Test3\' Get-ChildItem -Recurse '.\Test1\\' Get-ChildItem -Recurse '.\Test2\\' Get-ChildItem -Recurse '.\Test3\\' mkdir Te\Test2\Test3 Get-ChildItem -Recurse '.\Test1\\' Get-ChildItem -Recurse '.\Test2\\' Get-ChildItem -Recurse '.\Test3\\' PS T:\> Get-ChildItem
PS T:\> mkdir Test1\Test2\Test3
Directory: T:\Test1\Test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test3
PS T:\> Get-ChildItem -Recurse '.\Test1'
Directory: T:\Test1
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test2
Directory: T:\Test1\Test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test3
PS T:\> Get-ChildItem -Recurse '.\Test2'
Directory: T:\Test1
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test2
PS T:\> Get-ChildItem -Recurse '.\Test3'
Directory: T:\Test1\Test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test3
PS T:\> Get-ChildItem -Recurse '.\Test1\'
Directory: T:\Test1
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test2
Directory: T:\Test1\Test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test3
PS T:\> Get-ChildItem -Recurse '.\Test2\'
Get-ChildItem : Cannot find path 'T:\T' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Recurse '.\Test2\'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (T:\T:String) [Get-ChildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
PS T:\> Get-ChildItem -Recurse '.\Test3\'
Get-ChildItem : Cannot find path 'T:\T' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Recurse '.\Test3\'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (T:\T:String) [Get-ChildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
PS T:\> mkdir T\Test2\Test3
Directory: T:\T\Test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test3
PS T:\> Get-ChildItem -Recurse '.\Test1\'
Directory: T:\Test1
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test2
Directory: T:\Test1\Test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test3
PS T:\> Get-ChildItem -Recurse '.\Test2\'
Directory: T:\T
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test2
PS T:\> Get-ChildItem -Recurse '.\Test3\'
Directory: T:\T\Test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test3
PS T:\> Get-ChildItem -Recurse '.\Test1\\'
Directory: T:\Test1
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test2
Directory: T:\Test1\Test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test3
PS T:\> Get-ChildItem -Recurse '.\Test2\\'
Get-ChildItem : Cannot find path 'T:\Te' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Recurse '.\Test2\\'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (T:\Te:String) [Get-ChildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
PS T:\> Get-ChildItem -Recurse '.\Test3\\'
Get-ChildItem : Cannot find path 'T:\Te' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Recurse '.\Test3\\'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (T:\Te:String) [Get-ChildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
PS T:\> mkdir Te\Test2\Test3
Directory: T:\Te\Test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test3
PS T:\> Get-ChildItem -Recurse '.\Test1\\'
Directory: T:\Test1
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test2
Directory: T:\Test1\Test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test3
PS T:\> Get-ChildItem -Recurse '.\Test2\\'
Directory: T:\Te
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test2
PS T:\> Get-ChildItem -Recurse '.\Test3\\'
Directory: T:\Te\Test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.05.2019 9:55 Test3
PS T:\>
|
|
|
Отправлено: 10:03, 22-05-2019 |
|
Crazy Сообщения: 1234
|
Профиль | Отправить PM | Цитировать А чего тут читать... баг, он и в Индии баг. Программистам надо руки выправлять, которые этот командлет в таком виде выпустили. В PoSh Core этот баг тоже присутствует. В powershell v 2.0 его не было, а как ввели новый принцип определения местоположения, с версии 3.0, так этот баг и поселился
|
|
------- Последний раз редактировалось YuS_2, 22-05-2019 в 12:27. Отправлено: 12:05, 22-05-2019 | #2 |
|
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать О, я думал, это все-таки странная фича. Спасибо! А что за новый принцип определения местоположения?
|
|
Отправлено: 12:32, 22-05-2019 | #3 |
|
Crazy Сообщения: 1234
|
Профиль | Отправить PM | Цитировать Цитата Knaps:
Если в картинках, то будет нагляднее: Т.е. если командлету указать в качестве пути файл и включить рекурсию, он будет искать этот файл не только в текущем каталоге, но и во всех каталогах, находящихся в текущем каталоге, т.е. рядом с указанным путем к файлу. Если путь абсолютный, то в качестве текущего будет принят родительский каталог указанного файла: D:\TEST\test1.ext - здесь, это каталог TEST и все каталоги, находящиеся в нем будут просмотрены рекурсивно. - так работает командлет начиная с версии powershell 3.0 А в версии 2.0, указанный файл ищется по указанному пути и только, даже если присутствует рекурсия, никакие соседние каталоги не просматриваются... |
|
|
------- Последний раз редактировалось YuS_2, 22-05-2019 в 14:59. Отправлено: 14:44, 22-05-2019 | #4 |
|
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать Спасибо, теперь понял, что имели в виду.
|
|
|
Отправлено: 22:35, 22-05-2019 | #5 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| CMD/BAT - [решено] Отсечение пути.Как?Или получение относительного пути. | nfs911 | Скриптовые языки администрирования Windows | 12 | 19-05-2018 11:29 | |
| VBS/WSH/JS - Срипт копирования пути к файлу\папке и вставка пути в письмо Outlook | trlhrn | Скриптовые языки администрирования Windows | 0 | 07-08-2015 16:21 | |
| Разное - Символы СЛЭШ | pashtetadomanet | Хочу все знать | 14 | 24-02-2014 04:00 | |
| PowerShell - [решено] Помощь с сортировкой в get-childitem | kelevara | Скриптовые языки администрирования Windows | 6 | 07-05-2013 07:07 | |
| обратный прием | Jammer | Защита компьютерных систем | 4 | 02-12-2007 12:03 | |
|