Запустить программу внутри oop в powershell - PullRequest
1 голос
/ 14 февраля 2020

У меня есть exe cwebp , который в принципе можно запустить как

cwebp.exe image1.jpg -o image1.webp

Я пытаюсь создать простой скрипт powershell для запуска exe для всех изображений в папке, используя powershell Сценарий, у меня есть создать сценарий, подобный этому

param ( [string]$FolderName)
Get-ChildItem $FolderName | ForEach-Object {
    &"D:\Downloads\libwebp\bin\cwebp.exe" $_.FullName -o $_.BaseName + ".webp"
}

, чтобы я мог запустить файл ps1 с именем папки, например

batch-script.ps1 ".\images"

, но когда я запустил его, получил ошибку

SHCreateStreamOnFile((const LPTSTR)filename, STGM_READ, stream) failed 80070002
Error opening input file .webp (80070002)
OpenInputStream(filename, &stream) failed 80070002
cannot open input file '.webp'
Error! Could not process file .webp
Error! Cannot read input picture file '.webp'

в содержимом папки просто jpg image name image1.jpg, image2.jpg, я что-то пропустил?

1 Ответ

1 голос
/ 14 февраля 2020

Попробуйте что-то вроде этого:

param ( [string]$FolderName)

$images = Get-ChildItem $FolderName

foreach ($img in $images) {
  $outputName = $img.DirectoryName + "\" + $img.BaseName + ".webp"
  &"D:\Downloads\libwebp\bin\cwebp.exe" $img.FullName -o $outputName
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...