سؤال

أنا أحاول تشغيل بعض أوامر Logparser من PowerShell ، لكنني أواجه مشكلات في تمرير الحجج عبر بشكل صحيح ، البذر من النصي الخاص بي ؛

D: scripting smtplogs logparser logparser.exe "حدد أفضل 50 جهاز استقبال ، COUNT () في ٪ tmpoutput ٪ topReceiversndrall.gif من ٪ tempdir ٪ postall.log حيث المرسل مثل "<>" والمستقبل ليس مثل "٪٪ fmtopper ٪٪ ') desc "-i: tsv -iseparator: Space -headerrow: Off -Iheaderfile:" header3.tsv "-linefilter:"+10. للرسائل الفارغة كلها مقابل ٪ dategraph ٪ "

لقد قراءة الأحمال حول تغليف الحجج ولكن لا يمكن أن تكتشف كيفية جعل هذا العمل!

أي مساعدة يمكن أن تقدمها يا رفاق ستكون موضع تقدير كبير.

شكرًا

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

المحلول

لمعلمة سلسلة معقدة ، حاول تمرير الوسيطة باستخدام PowerShell هنا حتى لا تضطر للقلق بشأن الهروب من عروض الأسعار الفردية/المزدوجة

update1: لم أستطع الحصول على عمل fomratting ، هنا هي لقطة الشاشة.alt text

update2: تمكنت من تنسيق الكود أخيرًا.

d:\scripting\smtplogs\logparser\logparser.exe @"
SELECT TOP 50 Receiver, COUNT() 
INTO %TMPOutput%\TopReceiversNDRALL.gif 
FROM %TempDir%\PostAll.log 
WHERE Sender LIKE '' 
      AND Receiver NOT LIKE '%%go-fmtopper%%' 
GROUP BY Receiver 
ORDER BY COUNT() DESC" 
-i:TSV 
-iSeparator:space 
-headerRow:OFF 
-iHeaderFile:"header3.tsv" 
-lineFilter:"+10." 
-o:CHART 
-chartType:ColumnClustered 
-config:MyScript.js 
-chartTitle:"Receivers for NULL messages ALL for %DateGraph%
"@

تأكد من إضافة خط جديد بين لقب السلسلة هنا @" و "@.

نصائح أخرى

لمعلوماتك ، إذا لم تكن بحاجة إلى أي توسع متغير PowerShell ، فأنت أفضل حالًا باستخدام سلاسل Single Single Single. على سبيل المثال ، قد تتسبب السلسلة المزدوجة المقتبسة هنا في بعض الحزن:

@"
$(get-process <some_core_os_process> | stop-process)
"@

حيث ما يلي غير ضار:

@'
$(get-process <some_core_os_process> | stop-process)
'@

من غير المحتمل أن تحتوي سلسلةك هنا على شيء واضح للغاية ، لكن هناك $ f البسيط ستحل لا شيء ، أي أنه سيختفي من السلسلة الأصلية. ما لم يتم تعريف $ f بالطبع وتعيين شيء آخر غير فارغ أو فارغ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top