批处理文件 - 写入文件时添加空格

时间:2015-02-18 19:40:04

标签: batch-file command-line

将数据写入批处理文件时出现问题。

Input Data:
4


Code:

CLS
@ECHO OFF


set VBoxEXE="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" 
FOR /F "tokens=* delims=" %%x in (C:\Users\someuser\readthis.txt) DO SET read=%%x
SET /a display=%read%+1
set VMPath="C:\Users\someuser\VirtualBox\VirtualMachines\Lubuntu(32-Bit)_Clone_%read%.vdi"
set VMClone="C:\Users\someuser\VirtualBox\VirtualMachines\Lubuntu(32-Bit)_Clone_%display%.vdi"
ECHO Creating a new Virtual Machine
ECHO %VMPATH%
ECHO %display%
ECHO Old Version: %read%
ECHO New Version: %display%
REM %VBoxEXE% clonevdi %VMPath% %VMClone%
ECHO %display% > "C:\Users\someuser\readthis.txt"

我正在从文本文件中读取一个数字,在我的情况下,4在批处理文件中打印。当我读入它时,我添加1,然后在我克隆我的虚拟机时使用它。它可以工作,但是,当我打印更新版本时,在我添加后的情况下,它将打印5到文本文件。我遇到的问题是它打印5然后是空格,以便我的VMtoClone变为:

“C:\ Users \ someuser \ VirtualBox \ VirtualMachines \ Lubuntu(32-Bit)_Clone_5 .vdi”5抛出命令提示符后的空格,但找不到我的文件。如何正确地将数据写入文本文件以使其不添加空格,以便稍后我可以阅读它?

1 个答案:

答案 0 :(得分:1)

您的问题不在增量值中,因为set /a将从值中删除结束空格。您的问题出现在%read%变量中,它将检索空格,因为它们不会被丢弃。

删除"tokens=* delims="命令中的for /f以删除附加空格。

为避免脚本包含空格,请将echo行更改为以下任意一行

(ECHO %display%) > "C:\Users\someuser\readthis.txt" 

> "C:\Users\someuser\readthis.txt" ECHO %display%