String 批处理脚本中的字符串计算

String 批处理脚本中的字符串计算,string,batch-file,batch-processing,String,Batch File,Batch Processing,我有一个从周围2k服务器检索PowerPath许可证信息的脚本,我用简单的脚本实现了自动化: for /F %%A in (server_list.txt) do ( echo %%A >> PP_license.txt psexec \\%%A powermt check_registration | find "Key" >> PP_license.txt ) 但是我对这个输出文件不满意,它现在看起来像这样: server1 Key XXXX-XXXX server

我有一个从周围2k服务器检索PowerPath许可证信息的脚本,我用简单的脚本实现了自动化:

for /F %%A in (server_list.txt) do (
echo %%A >> PP_license.txt
psexec \\%%A powermt check_registration | find "Key" >> PP_license.txt
)
但是我对这个输出文件不满意,它现在看起来像这样:

server1
Key XXXX-XXXX
server2
Key YYYY-YYYY
是否有可能通过操纵此项来获得如下输出:

server1 XXXX-XXXX
server2 YYYY-YYYY
?

如果没有,我将尝试在PowerShell中执行此操作。

尝试此操作

for /F %%A in (server_list.txt) do (
    (echo|set /p"= %%A ")>> PP_license.txt
    for /f "tokens=* delims=" %%x in ('psexec \\%%A powermt check_registration ^| find "Key" ') do (
        (echo %%x)>>PP_license.txt
    )
)
ren PP_license.txt PP_license.tmp
3<PP_license.tmp (
:loop
set /p srv=<&3
set /p key=<&3
if "%srv%"=="" goto :end
<nul set /p=%srv% >> PP_license.txt
for /f "tokens=2" %%a in "%key%" do set key=%%a
Echo %key% >> PP_license.txt
goto :loop
:end
)
ren PP_license.txt PP_license.tmp
3 PP_license.txt
转到:循环
:结束
)
应该做你想做的事

莫娜

试试这个

ren PP_license.txt PP_license.tmp
3<PP_license.tmp (
:loop
set /p srv=<&3
set /p key=<&3
if "%srv%"=="" goto :end
<nul set /p=%srv% >> PP_license.txt
for /f "tokens=2" %%a in "%key%" do set key=%%a
Echo %key% >> PP_license.txt
goto :loop
:end
)
ren PP_license.txt PP_license.tmp
3 PP_license.txt
转到:循环
:结束
)
应该做你想做的事


Mona

好的,差不多可以了:)但是现在输出是这样的:server1键XXXX-XXXXserver2键yyy-YYYYserver3键zzzzzz这个注释的格式不好;)现在我有了:server1(newline)key XXXX server2(newline)key YYYY,我想得到的是:server1 XXXX(newline)server2 yyy…尽管你有你的答案,我还是再次编辑了我的答案。现在应该可以了。好的,这几乎可以工作:)但现在输出是这样的:server1键XXXX-XXXXserver2键yyy-YYYYserver3键ZZZZ此注释的格式不正确;)现在我有了:server1(newline)key XXXX server2(newline)key YYYY,我想得到的是:server1 XXXX(newline)server2 yyy…尽管你有你的答案,我还是再次编辑了我的答案。现在应该可以了。