cmd和批量的wmic输出差异..为什么?

时间:2017-08-10 09:06:04

标签: batch-file wmic

这是我不明白的问题

我正在cmd(win7)中执行以下命令:

>wmic netuse where "LocalName="Z:"" get UserName /value

输出很好,如下:

UserName=ASI\kote

(此命令输出的顶部和底部有2-3个空白行,此处无法以打字格式显示)

现在,我想在批处理脚本中运行此命令并获取其输出。所以这是我的简单批处理代码:

@setlocal EnableDelayedExpansion
@echo off
for /f "tokens=1,2,3,4,5,6,7,8 delims=," %%a in ("X:,Y:,Z:") do (
    echo %%a,%%b,%%c
    set currDrive=%%c
    echo wmic netuse where "LocalName="!currDrive!"" get UserName /value
    for /f "tokens=1,2,3,4,5,6,7,8 delims=*" %%a in ('wmic netuse where "LocalName="!currDrive!"" get UserName ^/value') do (
        echo %%a,%%b,"%%c"
        if "%%a"=="UserName" (
            set mappedDriveUser=%%c
            echo ===="mappedDriveUser!"
            echo org"%%c"
            rem set mappedDriveUser=!mappedDriveUser:^ =!
            rem echo ====!mappedDriveUser!
            rem echo Drive !currDrive! is connected through user !mappedDriveUser!
        ) else (
            rem donothing
        )
    )
)
echo end

以下是我得到的批量输出:

X:,Y:,Z:
wmic netuse where "LocalName="Z:"" get UserName /value
,,""
,,""
,,""Name=ASI\kote
,,""
,,""
,,""
end

批量输出更改 - 用户消失,实际的var出现在“”。我相信它应该在双引号内 我需要了解同样的事情。 另外,我需要提示在批处理脚本中获取'正确'的wmic cmd输出 - 这是我在cmd终端中运行命令时得到的。 事先提前

0 个答案:

没有答案