Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理变量删除换行符_Batch File_Cmd_Windows 10 - Fatal编程技术网

Batch file 批处理变量删除换行符

Batch file 批处理变量删除换行符,batch-file,cmd,windows-10,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 V

结果:

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!
我想删除fileVersion变量中的换行符,因为我必须构建一个供以后使用的路径。如果我真的构建了路径字符串,我在其中有一个换行符,这会破坏我的路径

Version: 1.5.1810.202

FullPath: C:\test\Setups\Nightly Builds\1.5.1810.202
\Full\
可能有助于您的调查…

尝试以下方法:

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

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

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=%%#"
)
将以下内容放入.bat脚本文件中

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

这一次,这实际上不是
cmd
或批处理脚本的错误
WMIC
在其输出中放入奇怪的行尾字符。WMIC输出以字符
0d0d0a
(十六进制)结尾的行,而不是通常的
0d0a
。因此,
fileVersion
将包含一个额外的
0D
,您需要使用此答案删除它。@Magoo感谢您的回答。这对我很有帮助,而且现在很有效。
FOR /F %%v IN ('powershell -NoLogo -NoProfile -File .\veronly.ps1') DO (SET "THEVERSION=%%v")
ECHO %THEVERSION%