2013-03-28 27 views
7

Đây là chuỗi của tôi để có được vị trí của TeamViewer (mọi phiên bản) dịch vụ thực thi:Làm cách nào để xóa các dòng trống khỏi đầu ra wmic?

for /f "skip=1 delims=" %A in ('wmic path win32_service where "name like 'TeamViewer%'" get pathname') do set POSITION=%A 

Vấn đề là do wmic vì nó bao gồm một dòng trống ở phần cuối của kết quả (trên Windows 7 lệnh) và đây là đầu ra:

C:\Users\giovanni>for /f "skip=1 delims=" %A in ('wmic path win32_service where "name like 'TeamViewer% 
'" get pathname') do set POSITION=%A 

:\Users\giovanni>set POSITION="C:\Program Files\TeamViewer\Version8\TeamViewer_Service.exe" 

:\Users\giovanni>set POSITION= 

C:\Users\giovanni>echo %position% 
ECHO enabled. 

Làm cách nào tôi có thể nhận được dòng thứ hai của đầu ra với vị trí chính xác của tệp thực thi? (hoặc bỏ qua dòng mới nhất, tất nhiên).

Cảm ơn tất cả trước và chúc một ngày tốt đẹp. Giovanni.

Đây là checktv.bat:

for /f "skip=1 delims=" %%A in ('wmic path win32_service where "name like 'TeamViewer%'" get pathname ^| findstr /r /v "^$"') do set POSITION=%%A 
echo %POSITION% 

Trả lời

9

Như thế này:

for /f "skip=1 delims=" %A in (
    'wmic path win32_service where "name like 'TeamViewer%'" get pathname ^| findstr /r /v "^$"' 
) do set POSITION=%A 

Các findstr /r /v "^$" loại bỏ dòng trống từ đầu ra.

+0

Và -Tôi thêm vào request- thể Tôi bao gồm chuỗi hoàn chỉnh trong một tập tin thực thi? Tôi cần nêu rõ điều gì đó trước đây? – Giovanni

+0

Nếu bạn muốn sử dụng điều này trong một tập tin thực thi, bạn phải thay đổi '% A' thành' %% A'. –

+0

Nếu tôi thay đổi '% A' trong'% AA', lô không tạo ra bất cứ điều gì: 'for/f" skip = 1 delims = "%% A in ('wmic path win32_service trong đó" name like' TeamViewer% ' "lấy tên đường dẫn^| findstr/r/v"^$ "') làm đặt POSITION = %% A' ' C: \> checkteamviewer.bat C: \> ' – Giovanni

5

blmic blah/value | tìm "=" >> bất cứ nơi nào

đầu ra sẽ

lĩnh vực = giá trị

không dòng thêm

tokenize từ đó, dấu phân cách =

+0

Điểm hay. Công tắc '/ VALUE' dường như không được ghi lại khi chạy' wmic /? '. –