Мы выполняем следующие команды
...
[System.IO.File]::WriteAllBytes($pathA, $data)
[System.IO.Compression.ZipFile]::ExtractToDirectory($pathA, $pathB)
// OR
Expand-Archive $pathA -DestinationPath $pathB
в Windows 10 Ent.x64 в версиях
Name Value
---- -----
PSVersion 5.1.17763.316
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.17763.316
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Код работает, если $ pathB не окажется слишком длинным.Попробовал много предложений, найденных здесь
\\?\$pathB
действительно работает в Проводнике, но в этом коде происходит сбой в ExtractToDirectory
с
The filename, directory name, or volume label syntax is incorrect
и в Expand-Archive
с
Cannot process argument because the value of argument "drive" is null.
Это не должно быть вопросом экранирования от обратной косой черты, если я удвою их, это даст мне
Illegal characters in path
Также попытался New-PSDrive
, как в
New-PSDrive -Name "X" -PSProvider FileSystem -Root $pathBase
но я получаю
A drive with the name 'X' does not exist.
Я прочитал, что ему нужно -Persist
, что дает мне
...the root must be a file system location on a remote computer.
Пробовал
net use x: $pathBase
// OR
subst $pathBase "x:\"
Join-Path -Path "x:\" -ChildPath ...
и оба конца в
Cannot find drive. A drive with the name 'x' does not exist.
Являются ли какие-либо из них использованы неправильно?Если нет - что еще попытаться это исправить?
Спасибо