Я запускаю bat-файл из командной строки, передавая ему 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

файл летучей мыши похож на это:

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

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

1 ответ1

0

Я полагаю, что вы виноваты в том, что не указали абсолютный путь, поэтому, если ваша текущая папка находится где-то глубже на диске c: ваш код пытается перейти оттуда к папке users\username, которой там нет.
Кстати, вы всегда должны использовать двойные кавычки, которые могут содержать пробелы или другие символы.

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .