50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

چگونه باید خطوط خالی را از آخر نتایج دستورات CMD حذف نمود

سلام

با استفاده از دستور زیر میخوام یک متغیر از اسم CPU درست کنم:

@echo off
Rem create variable from cpu name
for /f "useback tokens=* skip=1" %%g in (`wmic cpu get name ^|findstr /i "."`) do (
    set CPU_NAME=%%g
    echo %CPU_NAME%
)

مشکل اینجاست که در آخر نتایج دستور wmic cpu get name چند تا خط خالی وجود داره، به همین خاطر متغیری که ساخته میشه توسط اون خطوط خالی حذف میشن، چطور میشه این مشکل رو برطرف کرد.

میدونم میشه با اضافه کردن یک متغیر شمارشگر این مشکل رو حل کرد اما میخوام از طریق دیگه ای حل بشه

@echo off
Rem create variable from cpu name
set count=1
for /f "useback tokens=* skip=1" %%g in (`wmic cpu get name ^|findstr /i "."`) do (
    set CPU_NAME[!count!]=%%g
    set /a "count+=1
)
پرسیده شده در 1395/12/08 توسط

1 پاسخ

0

سلام و تشکر از همه

اما بچه های سایت stackoverflow.com خیلی سریعتر و حرفه ای تر عمل کردن و پاسخش رو بهم گفتن:

@echo off
setlocal enabledelayedexpansion
Rem create variable from cpu name
for /f "useback tokens=* skip=1" %%g in (`wmic cpu get name ^| findstr /r /v "^$"`) do (
    set CPU_NAME=%%g
    echo !CPU_NAME!
  )
endlocal

راه حل دوم:

@Echo Off
For /F "Skip=1 Delims=" %%A In ('WMIC CPU Get Name'
) Do For /F "Delims=" %%B In ("%%A") Do Set "CPU_NAME=%%B"
Echo=%CPU_NAME%
پاسخ در 1395/12/08 توسط

پاسخ شما