如何摆脱环境变量中的中间空格

时间:2009-03-30 22:42:37

标签: windows batch-file cmd

如何摆脱环境变量中的空格?

假设我有以下for循环片段,它获取某个磁盘的可用磁盘空间大小。

for /f "tokens=3" %%i in ('dir ^| find "Dir(s)"') do set size=%%i

会产生类似这样的结果

C:\>set size=129,028,096

我想按照以下方式摆脱分界线。

for /f "delims=," %%i in ('echo %size%') do set size=%%i

并产生了类似的结果

set size=129 028 096

如何在没有中间空格或使用原生工具的分隔符的情况下获得它?

1 个答案:

答案 0 :(得分:1)

您可以使用

set size=%size: =%

之后将替换所有空格。

但你也可以用逗号来表达:)

但请记住(a)分隔符更改,这对我来说是一个点,而不是逗号。这可能取决于您的操作系统语言或区域设置。并且(b)之后您无法使用该值进行数学运算,因为cmd仅限于带符号的32位数学运算(使用set /a)。

顺便说一下,你的第二个for语句将无法正常工作,因为它只会将size设置为最后一个数字组。这可以被规避,但我宁愿建议直接用逗号/点代替:

set size=%size:,=%
set size=%size:.=%