批处理文件 - 写入文件时添加空格
Batch File - Adding Whitespace when Writing to File
我在将数据写入批处理文件时遇到问题。
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 然后再打印白色 space,这样我的 VMtoClone 就变成了:
"C:\Users\someuser\VirtualBox\VirtualMachines\Lubuntu(32-Bit)_Clone_5 .vdi" 5 后的白色 space 抛出命令提示符,它找不到我的文件。如何正确地将数据写入文本文件,使其不添加白色space,以便稍后读取?
您的问题不在于增量值,因为 set /a
将从值中删除结尾空格。您的问题出在 %read%
变量中,该变量将检索未丢弃的空格。
删除 for /f
命令中的 "tokens=* delims="
以删除额外的空格。
要避免脚本包含空格,请将 echo
行更改为以下任何行
(ECHO %display%) > "C:\Users\someuser\readthis.txt"
或
> "C:\Users\someuser\readthis.txt" ECHO %display%
我在将数据写入批处理文件时遇到问题。
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 然后再打印白色 space,这样我的 VMtoClone 就变成了:
"C:\Users\someuser\VirtualBox\VirtualMachines\Lubuntu(32-Bit)_Clone_5 .vdi" 5 后的白色 space 抛出命令提示符,它找不到我的文件。如何正确地将数据写入文本文件,使其不添加白色space,以便稍后读取?
您的问题不在于增量值,因为 set /a
将从值中删除结尾空格。您的问题出在 %read%
变量中,该变量将检索未丢弃的空格。
删除 for /f
命令中的 "tokens=* delims="
以删除额外的空格。
要避免脚本包含空格,请将 echo
行更改为以下任何行
(ECHO %display%) > "C:\Users\someuser\readthis.txt"
或
> "C:\Users\someuser\readthis.txt" ECHO %display%