首页 > 解决方案 > 如何对带有选项的命令进行批量重定向

问题描述

我正在尝试运行一系列需要用户密码的命令,因此我在脚本开头要求输入密码并使用|(管道重定向)重定向到命令。

在文档中我找到了语法:

set password=secretpassword
echo %password% | command that prompt for password

我尝试使用 scp 命令从服务器复制一个文件,代码如下:

echo %password% | scp myuser@serverip:/home/myuser/myfile ./myfile

但没有用。

但是由于某种原因,此代码有效:

echo %password | %scp myuser@serverip:/home/myuser/myfile ./myfile

我不明白为什么,也许 %% 内部对管道的解释不同。

主要问题是当我将选项传递给命令时,比如让文件夹递归,它不起作用。例子:

echo %password | %scp -r myuser@serverip:/home/myuser/myfolder ./myfolder

我知道还有其他更好的方法,例如使用密钥对身份验证而不是密码,但我想了解它为什么不起作用。

标签: batch-fileredirectscp

解决方案


推荐阅读