در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

محمد برغمدی

چگونه باید خطوط خالی را از آخر نتایج دستورات 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
)
#آموزش_نوشتن_batch_file
لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.
محمد برغمدی

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

اما بچه های سایت 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%
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....