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%