【问题标题】:Run command A, then command B in Command Line运行命令 A,然后在命令行中运行命令 B
【发布时间】:2013-10-02 21:00:51
【问题描述】:

我对以下命令有疑问:

DSQUERY group -name "Marketing" | dsget group -members | 
DSGET user -email & DSMOD user -tel 00000000

这样做应该是列出Marketing组中所有人的电子邮件地址,并将他们的电话号码修改为0000000

它只是在执行第一个命令后停止并且不前进。 起初我尝试用 | 分隔最后一个 DSGET 和 DSMOD,但随后它向我抛出了一个错误,即此命令的目标对象格式不正确。

感谢您的帮助! 巴托斯

【问题讨论】:

  • 抱歉,我的信息不够……
  • 你调用批处理文件dsquery.*还是dsget.*?该错误经常发生,使用命令名作为批处理文件名。
  • 我什至没有把它做成一个批处理文件,这甚至在命令行中都不起作用......

标签: batch-file command


【解决方案1】:
DSQUERY group -name "Marketing" | dsget group -members | DSGET user -email & DSMOD user -tel 00000000

【讨论】:

  • 在我看来这和我做的一模一样...显示电子邮件后停止并且不修改电话?
【解决方案2】:

问题似乎是最后一个 DSGET 和 DSMOD 都需要消耗第一个 DSGET 的输出。

此时,由于我不知道这些命令是什么或如何使用它们,我只能建议将第一个 DSGET 的输出存储在一个临时文件中,然后将该文件提供给另一个 DSGET 并单独的 DSMOD,如下所示:

DSQUERY group -name "Marketing" | dsget group -members >"%TEMP%\tmpresults"
DSGET user -email <"%TEMP%\tmpresults"
DSMOD user -tel 00000000 <"%TEMP%\tmpresults"

【讨论】:

    最近更新 更多