Шлях занадто довгий при видаленні з повноцінного комп'ютера на віддаленому комп'ютері


2

Що є найпростішим способом видалити файл на віддаленому комп'ютері за допомогою PowerShell, якщо ім'я більше 260 символів? У мене є наступний код, але я натискаю ліміт 260 символів.

$s = New-PSSession -computername Server1    
Invoke-Command -session $s -scriptblock 
{Remove-Item "C:\Jenkins\workspace\Long Path with spaces" -force
-recurse}    
Remove-PSSession $s

Відповіді:


3

Це добре відоме обмеження в Powershell, на жаль.

Це питання має вже відповіли в StackExchange , прийнятою була відповідь cmd і dir замість цього, щоб зібрати список папок.

У цій відповіді також міститься наступне посилання: http://asysadmin.tumblr.com/post/17654309496/powershell-path-length-limitation що пояснює, чому dir у такому випадку міг би зробити трюк і показав наступний приклад:

The Dir version is longer since you have to strip the extra information from the results.    

$folders = cmd /c dir C:\Users /s /-c /a:h /a:d
$folders = $folders -match “Directory”
$folders = $folders | %{$_.Replace(“ Directory of ”,“”)}

як до цього на віддаленому комп'ютері?
Dan

@Dan: просто додайте код, наданий Merwyn, у свій скрипт сценарію. Потім це буде віддалено дистанційно. Зверніть увагу, що його код є прикладом, це може не дати очікуваного результату.
Ob1lan

2

Ви спробували використати шаблон?

Remove-Item "C:\Jenkins\workspace\Long Path with *"

Це видалить всі файли в цій папці, які починаються з "Long Path with".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.