我试图创建一个脚本来启动一个命令,以重新启动主机名位于.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(),但是我不认为这是对的。
答案 0 :(得分:0)
如果需要在Windows上执行此操作,请尝试使用PsShutdown或NirCmd实用程序重新启动远程计算机。还有一个批处理文件可循环显示您的主机名:
@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