Powershell w systemie Windows

0

Wykonuję plik nietoperza z wiersza polecenia, przekazując mu 2 w pełni kwalifikowane nazwy (dotyczy PGP) i działa dobrze.

Kiedy wykonuję ten sam plik nietoperza z programu PowerShell, przekazując mu te same nazwy, uruchamia się i generuje dane wyjściowe, ale wyświetla komunikat „System nie może znaleźć określonej ścieżki”.

W cmd:

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

W PS:

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

plik nietoperza wygląda następująco:

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

pgp --encrypt %inputfile% --recipient keyid --output %outputfile% --overwrite remove
Adesh S.
źródło
Usuń @echo offi sprawdź, czy to daje ci jakieś wskazówki.
DavidPostill
Gdzie jesteś w systemie plików po uruchomieniu tych poleceń? Gdzie jest plik wsadowy? Czy masz plik wsadowy PATH?
Ben N

Odpowiedzi:

0

Wydaje mi się, że twoja wina polega na tym, aby nie podać absolutnej ścieżki, więc jeśli bieżący folder znajduje się gdzieś głębiej na dysku c: twój kod próbuje skąd cd do folderu user \ nazwa użytkownika, którego tam nie ma.
BTW, powinieneś zawsze podwoić cudzysłowy, które mogą zawierać spacje lub inne zwięzłe znaki.

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

pgp --encrypt "%inputfile%" --recipient keyid --output "%outputfile%" --overwrite remove
LotPings
źródło