对于/ f循环连接参数

时间:2018-11-28 13:05:38

标签: batch-file for-loop

@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字符串一起显示,而不是我想要的最后一个。

1 个答案:

答案 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