Передать пакетные переменные с пробелами в сценарий powershell? - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть сценарий пакетной обработки / powershell, который я использую для составления списка всех своих фильмов и сериалов, но столкнулся с небольшой проблемой, у меня не может быть пробелов в моих пакетных переменных при передаче их в сценарий powershell.

Я попробовал все виды комбинаций 'и' вокруг переменных без всякой удачи.

Мои пакетные переменные

SETLOCAL enabledelayedexpansion
SET "listfolder=%CD%\ContentList\"

SET "listname1=TVSeries"
SET "RootFolder1=\\SERVER\Storage\TV Series\"
SET "Folder1Width=70"
SET ScanFolder1=TRUE

Мой пакетный код для запуска и передачи переменныхto powershell

"%listfolder%Script\Powershell.exe" -executionpolicy remotesigned -File "%listfolder%Script\folder1list.ps1" %RootFolder1% %listname1% %Folder1Width%

Мой код сценария powershell для установки переменных.

param([String]$RootFolder1, [String]$listname1, [int32]$Folder1Width)

Это ошибка, которую я получаю, если у меня есть пробел в пути% RootFolder1%, без пробелов всех трех переменныхпросто отлично перешли на powershell.

C:\Users\hflat\Desktop\Folder Content List Maker v4.5\ContentList\Script\folder1list.ps1 : Cannot process argument
transformation on parameter 'Folder1Width'. Cannot convert value "TV" to type "System.Int32". Error: "Input string was
not in a correct format."

Я нашел решение здесь Как передать строку с пробелами в PowerShell?

Что работало, чтобы использоватьОболочка cmd с / S для разворачивания внешних кавычек и удаления моего собственного пути к powershell.exe

cmd /S Powershell.exe -executionpolicy remotesigned -File "%listfolder%Script\folder1list.ps1" "%RootFolder1%" "%listname1%" "%Folder1Width%"

1 Ответ

0 голосов
/ 12 апреля 2019

Я нашел решение здесь Как передать строку с пробелами в PowerShell?

Что сработало, так как я использовал оболочку cmd с / S, чтобы развернуть внешние кавычки и удалить моисобственный путь к powershell.exe

cmd /S Powershell.exe -executionpolicy remotesigned -File "%listfolder%Script\folder1list.ps1" "%RootFolder1%" "%listname1%" "%Folder1Width%"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...