我正在尝试为我的ESXi服务器创建备份脚本,并且遇到了一些问题。如何使两个批处理文件变量回显为单行?
我需要循环这两个命令,然后将它们写入一个文本文件,我称之为backup.list。它将包含我需要返回的所有VM ID和VM名称。
当我有两个循环命令对服务器运行时,他们只返回最后一个值,我知道有一些我失踪,但我不是很明智,即使批处理。
下面是代码:
@ECHO OFF
SET PLINK=C:\Plink.exe
SET ESXHOST=esx01.example.com
SET USERNAME=root
SET PASSWORD=password
SET DATASTORE=/vmfs/volumes/datastore3
IF EXIST Backup.list DEL Backup.list
TYPE NUL>Backup.list
SETLOCAL EnableDelayedExpansion
FOR /F "SKIP=1 TOKENS=1" %%A IN ('%PLINK% %USERNAME%@%ESXHOST% -pw %PASSWORD% vim-cmd vmsvc/getallvms') DO SET ID=%%A
FOR /F "SKIP=1 TOKENS=2" %%B IN ('%PLINK% %USERNAME%@%ESXHOST% -pw %PASSWORD% vim-cmd vmsvc/getallvms') DO SET VM=%%B
ECHO !ID!:!VM!
PAUSE
后自动:要格式化代码块,它缩进4个空格,或选择它并单击编辑器工具栏上的代码按钮。请参阅[如何格式化我的代码块?](http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks) – Helen 2010-07-08 16:46:02