Скрипт Powershell "$ dirs" - PullRequest
       3

Скрипт Powershell "$ dirs"

0 голосов
/ 08 октября 2019

Так что у меня нет диплома или какого-либо формального обучения любому языку программирования, но моя работа заставляла меня постепенно изучать основы SQL, и теперь мне дали новое задание на работе. Предыдущий человек, отвечавший за эту задачу, запускал сценарии PowerShell для объединения и переименования PDF-файлов. Я получаю макроуровень того, как все это работает. Сценарий устанавливает цикл через родительский каталог во все дочерние каталоги, объединяет PDF-файлы с использованием PDFtk Server, а затем переименовывает объединенные PDF-файлы в дочерний каталог, в котором они названы. Однако я не могу понять, как указать каталоги (я думаю, это термин). В настоящее время я могу только успешно запустить скрипт powershell в папке, в которой находится Console2.

$path = Split-Path -parent $MyInvocation.MyCommand.Definition 

Function mergeFiles 
{ 
# Loop through all directories 
$dirs = dir $path -Recurse | Where { $_.psIsContainer -eq $true }
$cmd = 'C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe'
$In1 = 'A.pdf'
$In2 = 'B.pdf'
$Out1 = 'C.pdf'
Foreach ($dir In $dirs) 

Это первая часть функции объединения файлов. Может кто-нибудь помочь мне разобраться, как определить специфические "dirs"? (Как если бы у меня был PDF в папке на рабочем столе)

1 Ответ

2 голосов
/ 09 октября 2019

Местоположение, которое заполняет каталог, в котором он будет искать, на основе местоположения вашего скрипта, на основе этой строки:

$path = Split-Path -parent $MyInvocation.MyCommand.Definition 

$MyInvocation.MyCommand.Definition - это полный путь к запущенному скрипту и команде Split-Path -parent вернет родительский каталог. Вы можете просто изменить эту строку на нужное место, например:

$path = 'C:\Users\JC\Desktop\PDF'

, но вы, вероятно, не хотите жестко задавать этот путь. Что вы хотите сделать, это добавить путь в качестве входного аргумента в сценарий. Чтобы сделать это, добавьте следующее в верхнюю часть вашего скрипта:

PARAM($path)

Затем, когда вы вызываете свой скрипт, вы просто проходите интересующий вас путь:

.\theScript.ps1 C:\Users\JC\Desktop\PDF

Вызатем можно получить более расширенные сведения и указать значение по умолчанию, например, если вы хотите, чтобы значением по умолчанию было местоположение, в котором выполняется скрипт:

PARAM($path = '.')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...