سؤال

أحاول القيام بما يلي: ابحث من خلال جميع ملف txt في درجة الحرارة التي تبدأ بـ "micro" والعثور على ما إذا كانت السلاسلان التاليتان موجودة في أي منها. أحتاج إلى العثور على كلا السلاسل في ملف واحد.

حاليا لدي:enter code here

@echo off
cd C:\Users\ADMINI~1\AppData\Local\Temp
findstr /N /C:"action: Uninstall" /C:"Exit code: 0x0, restarting: No" Micro*.log >results.txt
if %errorlevel%==1 (
robocopy C:\Users\ADMINI~1\AppData\Local\Temp C:\Users\Administrator\Desktop results.txt
) else (
echo matches found
)

لكن هذا يستخدم أو. لقد وجدت أنني بحاجة إلى استخدام.* ل ، لكن البسيط التالي لا يعمل:

findstr /N /C:"action: Uninstall".*/C:"Exit code: 0x0, restarting: No" Micro*.log

لست متأكدًا مما أفعله خطأ. :/

هتاف ، جيري

هل كانت مفيدة؟

المحلول 2

set "string1=action: Uninstall"
set "string2=Exit code: 0x0, restarting: No"
set "files=C:\Users\ADMINI~1\AppData\Local\Temp\Micro*.log"

findstr /m /c:"%string1%" "%files%" | findstr /f:/ /m /c:"%string2%"

احصل على قائمة الملفات التي تحتوي على السلسلة الأولى واستخدم هذه القائمة للبحث في السلسلة الثانية.

نصائح أخرى

for /F "delims=" %%a in ('findstr /M /C:"action: Uninstall" Micro*.log') do (
   findstr /N /C:"Exit code: 0x0, restarting: No" "%%a"
)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top