@echo off
setlocal enableextensions enabledelayedexpansion
title Testing
color 4f
for /l %%x in (1,1,3) do (
rem This is working
set var1=%%x.extention
echo !var1!
for /f "tokens=2 delims==" %%a in (
'wmic datafile where "name='C:\\Windows\\System32\\notepad.exe'" get version /value') do (
::This is NOT working. WHy??
set var2=%%a.exention
)
echo !var2!
)
@pause
有人可以帮我吗?我正在尝试连接一些变量,for-loop
参数和字符串。麻烦的是在循环参数的末尾获取字符串。
.extention
中的字符串set var2
与.extension
字符串一起显示,而不是我想要的最后一个。
答案 0 :(得分:2)
问题是How to define custom macros in MathJax的输出是Unicode文本,而wmic
command的转换成ANSI文本时遇到了问题,因此留下了一些孤立的回车符,使您的输出出现很奇怪。您可以通过将批处理脚本的输出重定向到文件中并通过十六进制查看来证明这一点。编辑器。
要解决该问题,请环绕另一个for /F
循环,如下所示:
for /F "delims=" %%b in ('
wmic DataFile where "Name='C:\\Windows\\System32\\notepad.exe'" get Version /VALUE
') do for /F "tokens=2 delims==" %%a in ("%%b") do (
echo(%%a.extension
)
N.B .:
不要在块或循环中使用::
样式的注释,因为它们可能会导致意外的行为;改用for /F
。