Command line plink.exe-设置终端中的行数?

Command line plink.exe-设置终端中的行数?,command-line,putty,plink,Command Line,Putty,Plink,我正试图用plink从开关上提取信息。问题是它一直试图插入一个“按空格继续”的中断,而我似乎无法关闭它。我知道这个中断是根据终端中的行数插入的;手动putty会话会根据窗口高度更改滚动的行数。如何更改plink的行为以显示足够的行,以便在不插入中断的情况下完成我正在运行的查询?要自动执行命令,首先应该在不进行终端模拟的情况下运行SSH客户端。这样,你就不必处理这样的问题了 在Plink的命令行上指定命令时,Plink(类似于OpenSSHsshclient)不使用终端仿真: plink user

我正试图用plink从开关上提取信息。问题是它一直试图插入一个“按空格继续”的中断,而我似乎无法关闭它。我知道这个中断是根据终端中的行数插入的;手动putty会话会根据窗口高度更改滚动的行数。如何更改plink的行为以显示足够的行,以便在不插入中断的情况下完成我正在运行的查询?

要自动执行命令,首先应该在不进行终端模拟的情况下运行SSH客户端。这样,你就不必处理这样的问题了

在Plink的命令行上指定命令时,Plink(类似于OpenSSH
ssh
client)不使用终端仿真:

plink username@host less file.txt
这样,由于没有终端,
less
命令(以及类似命令)的行为类似于简单的
cat


一些不知名的SSH服务器(如在某些交换机上运行的服务器)不支持Plink用于执行其命令行上指定的命令的SSH“exec”通道

如果是这样,您可能正在使用输入重定向将命令传递给Plink,如:

echo less file.txt | plink username@host 
在这种情况下,Plink使用终端仿真。因此
less
将对输出进行分页

要阻止Plink使用终端仿真,请使用:


我找到的最佳解决方案是将命令从如下文本文件发送到plink:

plinkusername@host-pw password

我遇到的最后一个问题是,这样做会导致它输出一个正常会话,包括splash消息,它在我精心编制的查询结果中添加了很多行。在我的情况下,这是相对容易解决的,因为我想要的数据行以整数开头,而其他行都以混合字符开头,所以我可以只构建一个简单的“if%a eq+%a”检查来清除无用的信息

对于那些感兴趣的人,这是我的单行命令的样子:

for/f“令牌=1,2,3,7”%A in('plinkuser@host-pw pass^>outputfile.txt

它提取一个列表并按上述方式对其进行过滤,然后使用列表的每一行运行第二个命令来比较特定的信息位。如果发现不匹配,则将相关信息删除到输出文件中

现在,如果我能弄清楚如何构建变量提示,我可以内联使用。Windows 10以不同的方式处理这些提示,它们的工作方式与以前的版本不同


(是的,这在批处理文件中很容易,但荒谬的安全策略阻止我运行批处理文件,这将使我的工作更容易。因此我构建了类似于这个怪物的东西。)

我尝试了-T开关,得到了相同的结果。下面是我刚刚运行的命令:
plinkusername@host-pw密码-T“命令“
并在大约20行后暂停。(编辑:刚开始使用stackoverflow,文本字段…不够直观。请原谅我没有换行)如果在最大化窗口中的PuTTY中运行命令,命令何时暂停?大约在屏幕填充后。我认为这实际上是额外的两行。这就是为什么我在寻找一种方法来告诉它plink有9000行,因为它似乎不在乎是否使用-t开关。如果使用
-t
开关,plink甚至不会告诉远程端它有多少行。体面的命令将不分页。可能您的SSH服务器或命令会退回到一些硬编码的行数,而不是[what is bug imo]。在这种情况下,您可以尝试在PuTTY中创建一个存储会话,默认窗口大小设置为9000行(如果可能的话),并在Plink中使用该存储会话(使用
-t
开关[not
-t
]强制进行终端仿真),如
Plink session-t命令。虽然我甚至不确定windows大小设置是否对Plink有任何影响。如果没有,你就不走运了。-你必须使用另一个命令行/可编写脚本的SSH客户端,它的行为就像它有一个设置大小的窗口一样。
echo less file.txt | plink username@host -T