Java 连接命令时拒绝访问

Java 连接命令时拒绝访问,java,powershell,cmd,Java,Powershell,Cmd,我想将多个命令连接到一个字符串中,但我遇到了一个问题: 如果我在CMD中单独运行以下命令,它会工作: powershell.exe pushd path_to_active_UNC_directory $Env:PRESTO_PASSWORD=XXXXX java -jar presto.jar --server https://address.of.server --catalog hive --debug --schema murex_tradestore --user=test --pa

我想将多个命令连接到一个字符串中,但我遇到了一个问题:

如果我在CMD中单独运行以下命令,它会工作:

powershell.exe
pushd path_to_active_UNC_directory
$Env:PRESTO_PASSWORD=XXXXX 
java -jar presto.jar --server https://address.of.server --catalog hive --debug --schema murex_tradestore --user=test --password --execute "SELECT * FROM TABLE;" --output-format CSV_HEADER > test.csv
popd
但是,如果我连接这些命令,它只在
$Env:PRESTO_PASSWORD=XXXXX

如果我添加
java-jar presto.jar--serverhttps://address.of.server --目录配置单元--调试--模式murex_tradestore--用户=测试--密码--执行“从表中选择*”--输出格式CSV_HEADER>test.CSV
然后出错为“拒绝访问”

这可能是什么原因?考虑到当我依次运行命令时,它确实起作用。下面是我连接命令时运行的代码:

powershell.exe; pushd path_to_active_UNC_directory;$Env:PRESTO_PASSWORD=XXXXX; java -jar presto.jar --server https://address.of.server --catalog hive --debug --schema murex_tradestore --user=test --password --execute "SELECT * FROM TABLE;" --output-format CSV_HEADER > test.csv;popd

我已经通过创建powershell脚本(ps1)并运行该脚本解决了这个问题。这样我就不需要“连接”不同的命令

现在,它似乎收到了密码

代码:

代码cl1:

param([string] $path = "C:\",
      [string] $usr_pass = "",
      [string] $usr_name = "",
      [string] $sql_code = "",
      [string] $file_name = "",
      [string] $schema = ""
)

pushd $path
$Env:PRESTO_PASSWORD=$usr_pass
java -jar presto.jar --server https://presto-poc.dap.pl.ing.net --catalog hive --debug --schema $schema --user=$usr_name --password --execute "$sql_code;" --output-format CSV_HEADER > $file_name
popd

我猜为了让它不拒绝访问,你需要提供一个密码!这就是
$Env:PRESTO_PASSWORD=XXXXX
的用途。您可以使用PASSWORD值设置PRESTO_PASSWORD环境变量,以避免出现提示。我要说的是,您正在定义一个环境变量,但随后运行一个不使用它的
java
命令和一个也不使用它的
pop location
命令!什么在用那个密码?我不知道它是怎么工作的。但是如果我设置
$Env:PRESTO_PASSWORD=XXX
,当我逐行运行它时,它会被拾取。PRESTO_PASSWORD environment var是根据文档确定的方法。我知道环境变量是如何工作的!我要告诉你的是,从你发布的内容来看,没有任何迹象表明任何人正在使用该密码,你没有向我们提供足够的信息!为了让我们能够帮助您,您应该提交一份您的代码,以及足够的信息,以便我们复制您报告的问题。
param([string] $path = "C:\",
      [string] $usr_pass = "",
      [string] $usr_name = "",
      [string] $sql_code = "",
      [string] $file_name = "",
      [string] $schema = ""
)

pushd $path
$Env:PRESTO_PASSWORD=$usr_pass
java -jar presto.jar --server https://presto-poc.dap.pl.ing.net --catalog hive --debug --schema $schema --user=$usr_name --password --execute "$sql_code;" --output-format CSV_HEADER > $file_name
popd