#powershell #scripting #macros
#powershell #сценарии #макросы
Вопрос:
Я создаю скрипт для преобразования PDF в текстовый файл. Я пытаюсь скопировать имя файла, а затем использовать скопированное имя файла в следующей строке скрипта. Но использование get-clipboard не включает эти данные в ту же командную строку. Есть ли способ по существу ctrl v в этой строке с помощью PS?
PS C:UsersPiRho> @(get-childitem C:UsersPiRhoDesktopPDF_Convert -name) [0] | set-clipboard
PS C:UsersPiRho> cd C:UsersPiRhoDesktopPDF_Convert
PS C:UsersPiRhoDesktopPDF_Convert> .pdftotext -table | get-clipboard
I/O Error: Couldn't open file 'get-clipboard'
Итак, это старый способ, которым я это делал.
PS C:UsersPiRho> @(get-childitem C:UsersPiRhoDesktopPDF_Convert -name)[0] | set-clipboard
PS C:UsersPiRho> cd C:UsersPiRhoDesktopPDF_Convert
PS C:UsersPiRhoDesktopPDF_Convert> .pdftotext -table #Ctrl V#
Это #Ctrl V#
делается с помощью моего макроса, но иногда он будет использовать предыдущую информацию буфера обмена.
Фактически я ищу замену Ctrl V
в powershell, которая не полагается на макрос для ввода туда имени файла.
Комментарии:
1. Обязательно ли это должен быть буфер обмена? лучший способ — сохранить имя файла в переменной и использовать его.
2. @HAL9256 Это то, о чем я думал, но я очень новичок в PS и любом кодировании в целом. При этом я не уверен, как бы я это сделал.
3. Ваша команда
.pdftotext -table | get-clipboard
не имеет смысла для меня,Get-
командлет является источником, а не местом назначения для канала. что вы могли бы попробовать:.pdftotext -table (get-clipboard)
или.pdftotext -table (get-clipboard)[0]
4. Или
.pdftotext -table (gci DesktopPDF_Convert)[0].Name
Ответ №1:
Самый простой способ — использовать переменные, чтобы что-то вроде:
$File = @(get-childitem C:UsersPiRhoDesktopPDF_Convert -name)[0]
cd C:UsersPiRhoDesktopPDF_Convert
.pdftotext -table $File.FullName