我正在创建一个命令,它将在另一台机器的命令行上运行多个东西。这是我想要做的。
我可以从Run运行以下命令来完成我需要完成的工作,但似乎无法使psexec的格式正确理解它。
cmd /K cd /d D:\directory & ant & exit
我已经尝试将其应用于下面的psexec示例:
psexec \\machine cmd /K cd /d D:\directory & ant & exit
执行此操作时,它将激活命令行并前往D:\directory
,但不会执行其余命令。添加""
只会产生更多问题。
任何人都可以指导我使用正确的格式吗?或者除了psexec以外我可以用来完成这个(仅限免费选项)?
答案 0 :(得分:7)
经过一些互联网搜索和反复试验后,终于弄明白了。 psexec需要/ c来运行多个命令,但该语法不适用于我上面编写的设置。我已经得到了以下命令来运行我需要的东西。
psexec \\machine cmd /c (^d:^ ^& cd directory^ ^& ant^)
我不需要退出,因为psexec会在完成后退出。您也可以使用&&要求成功继续下一个命令。发现这个论坛很有用
http://forum.sysinternals.com/psexec_topic318.html
这用于运行psexec命令
答案 1 :(得分:2)
这有效:
psexec \ ComputerName cmd / c“echo hey1& echo hey2”
答案 2 :(得分:0)
由于您询问了其他选项,并且这有标签配置管理 - 我想您可能对Jenkins(或Hudson)感兴趣。它提供了创建主从机制的非常好的方法,可以帮助简化构建过程。
答案 3 :(得分:0)
我总是这样使用:)并且正常运作
psexec \\COMPUTER -e cmd /c (COMMAND1 ^& COMMAND2 ^& COMMAND3)
答案 4 :(得分:0)
在简单情况下,我使用:
const airports = "PHX BKK OKC JFK LAX MEX EZE HEL LOS LAP LIM".split(" ");
const routes = [
["PHX", "LAX"],
["PHX", "JFK"],
["JFK", "OKH"],
["JFK", "HEL"],
["JFK", "LOS"],
["MEX", "LAX"],
["MEX", "BKK"],
["MEX", "LIM"],
["MEX", "EZE"],
["LIM", "BKK"]
];
const adjacencyList = new Map();
function addNode(airport) {
adjacencyList.set(airport, []);
}
function addEdge(origin, destination) {
adjacencyList.get(origin).push(destination);
const dest = adjacencyList.get(destination);
if (!dest) {
addNode(destination)
}
adjacencyList.get(destination).push(origin);
}
airports.forEach(addNode);
routes.forEach(route => addEdge(...route));
console.log("result");
adjacencyList.forEach((value, key) => {
console.log(key, value);
});
对于更复杂的情况,使用带有PsExec's -c
switch的批处理文件可能更合适:
-c开关指示PsExec将指定的可执行文件复制到远程系统中以供执行,并在程序完成运行后将其从远程系统中删除。
PsExec \\machine <options> CMD /C "command_1 & command_2 & ... & command_N"