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
)
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%