Windows 上的 Powershell

Windows 上的 Powershell

我从命令提示符执行一个 bat 文件,并向其传递 2 个完全限定名称(这是用于 PGP 的),它运行良好。

当我从 Powershell 执行相同的 bat 文件并向其传递相同的名称时,它会运行并产生输出,但会显示一条消息“系统找不到指定的路径”。

在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

答案1

我猜你的错误在于没有给出绝对路径,所以如果你当前的文件夹位于 c: 驱动器的某个较深位置,你的代码会尝试从那里 cd 到不存在的文件夹 users\username。
顺便说一句,你应该始终用双引号将可能包含空格或其他有害字符的路径括起来。

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

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

相关内容