Powershell на Windows


0

Я виконую бат-файл з командного рядка, передаючи йому 2 повних імена (це для PGP), і він працює добре.

Коли я виконую той самий bat-файл від Powershell, що передає їм ті ж самі імена, він запускає і виробляє вихід, але дає повідомлення "Система не може знайти вказаний шлях".

У cmd:

mybatfile.bat e:\dirname\filename.ext  e:\dirname\filename.ext

У PS:

./mybatfile e:\dirname\filename.ext  e:\dirname\filename.ext

файл bat такий:

@echo off
c:
cd users\username
set inputfile=%1
set outputfile=%2

pgp --encrypt %inputfile% --recipient keyid --output %outputfile% --overwrite remove

Видалити @echo off і подивіться, якщо це дає вам будь-які ключі.
DavidPostill

Де ви знаходитесь у файловій системі під час виконання цих команд? Де знаходиться пакетний файл? Це пакетний файл на вашому PATH?
Ben N

Відповіді:


0

Думаю, ваша помилка полягає в тому, щоб не дати абсолютного шляху, так що якщо ваша поточна папка знаходиться десь глибше в c: drive, ваш код намагається перекласти звідти в папку користувачів, ім'я яких немає.
До речі, ви завжди повинні подвійні лапки, які можуть містити пробіли або інші отруйні символи.

@echo off
cd /D "C:\users\username"
set "inputfile=%~1"
set "outputfile=%~2"

pgp --encrypt "%inputfile%" --recipient keyid --output "%outputfile%" --overwrite remove
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.