批处理变量删除换行符

时间:2018-02-21 11:35:25

标签: batch-file cmd windows-10

setlocal enabledelayedexpansion

... a lot of batch script ...
IF ... a lot of batch script ...    

for /f "skip=2 delims== tokens=2" %%g in ('WMIC DATAFILE WHERE ^"Name^='!filePath!'^" GET Version /value') DO (
    set fileVersion=%%g
)

ECHO Version: !fileVersion!

set nightlyBuildFullPath=%2\Setups\Nightly Builds\!fileVersion!\Full\

ECHO FullPath: !nightlyBuildFullPath!

结果:

Version: 1.5.1810.202

FullPath: C:\test\Setups\Nightly Builds\1.5.1810.202
\Full\

我想删除fileVersion变量中的换行符,因为我必须构建一个路径供以后使用。如果我实际构建了路径字符串,那么我会在其中包含一个换行符,这会破坏我的路径。

3 个答案:

答案 0 :(得分:2)

ECHO Version: "%fileVersion:~0,-1%"

可能有助于您的调查......

答案 1 :(得分:1)

试试这样:

for /f "skip=2 delims== tokens=2" %%g in ('WMIC DATAFILE WHERE ^"Name^='!filePath!'^" GET Version /value') DO (
    for /f "tokens=* delims=" %%# in ("%%g") do set "fileVersion=%%#"
)

答案 2 :(得分:0)

将以下行放入名为veronly.ps1的文件中。将文件名更改为您要检查的文件名。

Get-WmiObject -Class 'CIM_DataFile' -Filter "name='C:\\Program Files (x86)\\PuTTY\\psftp.exe'" | % { $_.Version }

将以下内容放入.bat脚本文件中。

FOR /F %%v IN ('powershell -NoLogo -NoProfile -File .\veronly.ps1') DO (SET "THEVERSION=%%v")
ECHO %THEVERSION%