创建脚本以重新启动主机名位于文本文件中的计算机

时间:2019-01-14 17:21:28

标签: java arrays shell jenkins groovy

我试图创建一个脚本来启动一个命令,以重新启动主机名位于.txt文件中的计算机。我正在Jenkins上运行它,因此理想情况下应该在Groovy中运行,但是可以使用shell脚本。

我尝试使用Groovy创建此代码。我的目的是找到.txt文件并对其应用此CMD命令

String fileContent = new File("C:/Users/omr/Documents/Temp/test.txt").text
println fileContent

"cmd /c shutdown -r -t 0".execute(fileContent)

到目前为止,我还没有碰到任何运气,我已经研究了很多如何从Groovy执行cmd命令,它们都声明了.execute(),但是我不认为这是对的。

2 个答案:

答案 0 :(得分:0)

如果需要在Windows上执行此操作,请尝试使用PsShutdownNirCmd实用程序重新启动远程计算机。还有一个批处理文件可循环显示您的主机名:

@echo off
for /F "tokens=*" %%A in (test.txt) do (
  echo psshutdown -r -t 0 \\%%A
)

我认为这里实际上并不需要Java / Groovy,仅作为外壳程序脚本的包装即可。

答案 1 :(得分:0)

要远程运行,可以使用psexec。 要以常规方式读取测试文件,您有以下两种解决方案:

String fileContents = new File('/path/to/file').text

如果需要指定字符编码,请改用以下内容:

String fileContents = new File('/path/to/file').getText('UTF-8')

如果您需要读取文件Line Bye Line。

File file1 = new File("C:\path\to\file\myTestfile.txt");
for (def i=0;i<=30;i++) // specify how many line need to read eg.. 30
{
 log.info file1.readLines().get(i)

}

您还可以使用cmd读取文本文件。

FOR /F %i IN (file.txt) DO @echo %i