如何摆脱环境变量中的空格?
假设我有以下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
如何在没有中间空格或使用原生工具的分隔符的情况下获得它?
答案 0 :(得分:1)
您可以使用
set size=%size: =%
之后将替换所有空格。
但你也可以用逗号来表达:)
但请记住(a)分隔符更改,这对我来说是一个点,而不是逗号。这可能取决于您的操作系统语言或区域设置。并且(b)之后您无法使用该值进行数学运算,因为cmd
仅限于带符号的32位数学运算(使用set /a
)。
顺便说一下,你的第二个for
语句将无法正常工作,因为它只会将size
设置为最后一个数字组。这可以被规避,但我宁愿建议直接用逗号/点代替:
set size=%size:,=%
set size=%size:.=%