2009-03-09 20 views
7

मैं पावरहेल से कुछ लॉगपर्सर कमांड चलाने की कोशिश कर रहा हूं लेकिन मुझे तर्कों को सही तरीके से पारित करने में समस्याएं हैं, मेरी स्क्रिप्ट से उत्साह है;पावरहेल और लॉगपर्सर तर्क

घ: \ पटकथा \ smtplogs \ logparser \ logparser.exe "में चयन टॉप 50 रिसीवर, COUNT ()% TMPOutput% \ TopReceiversNDRALL.gif से% tempdir% \ PostAll.log कहां भेजने वाले की तरह '<>' और प्राप्तकर्ता द्वारा '%% go-fmtopper %%' ग्रुप द्वारा प्राप्तकर्ता () डीईएससी "-i: टीएसवी -आईसेपरेटर: स्पेस -हेडर पंक्ति: OFF -iHeaderFile:" header3.tsv "-lineFilter:" + 10। " -o: चार्ट-चार्ट टाइप: कॉलमक्लर्ड-कॉन्फिग: MyScript.js -chartTitle: "% DateGraph% के लिए सभी संदेशों के लिए रिसीवर"

Ive तर्कों को समाहित करने के बारे में लोड पढ़ते हैं लेकिन यह समझने में प्रतीत नहीं होता है कि यह काम कैसे करें!

कोई भी मदद जो आप लोगों को प्रदान कर सकते हैं उसकी बहुत सराहना की जाएगी।

धन्यवाद

+0

+1 - यह सुनिश्चित नहीं है कि यह क्यों मतदान किया गया है, मुझे एक अच्छा सवाल लगता है ... फेलो एंडी अन्य एंडीज़ के लिए देख रहे हैं –

+0

हाँ, यह मुझे परेशान करता है, मुझे पता है कि यह नोब सवाल है लेकिन यह कष्टप्रद जीवन है मुझ में से! –

+0

+1 हाँ, मैं इसे एक वैध प्रश्न मानता हूं क्योंकि कभी-कभी यह बहुत परेशान होता है कि इसमें स्ट्रिंग को कितने सिंगल/डबल कोट्स के साथ पास किया जाए। – Sung

उत्तर

5

एक जटिल स्ट्रिंग पैरामीटर के लिए, कि आप सिंगल/डबल उद्धरण

बचने Update1 के बारे में चिंता करने की ज़रूरत नहीं होगी powershell here-strings इसलिए का उपयोग कर तर्क पारित करने के लिए प्रयास करें: मैं नहीं कर सके काम करने के लिए 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% 
"@ 

यकीन है कि तुम यहाँ-स्ट्रिंग मॉनिकर्स के बीच एक नई लाइन जोड़ने @ " और " @ करें।

+0

हमेशा दोस्त के रूप में, आपने इसे क्रैक किया है, मैंने यहां तक ​​कि तारों के बारे में भी नहीं सुना था! एक बार फिर धन्यवाद! –

+0

आह, यह सुनकर खुशी हुई कि मैं सुनवाई की शक्ति फैलाने में सक्षम था। पावरहेल की कार्यक्षमताओं को फैलाना बहुत अच्छा है;) – Sung

1

एफवाईआई, यदि आपको किसी भी PowerShell चर विस्तार की आवश्यकता नहीं है तो आप सिंगल उद्धृत तारों का उपयोग करके बेहतर हैं।

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

जहां निम्नलिखित हानिरहित है:

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

यह संभावना नहीं आपके यहाँ स्ट्रिंग कुछ तो स्पष्ट है, लेकिन एक साधारण $ f होते हैं है उदाहरण के लिए निम्नलिखित डबल यहाँ उद्धृत स्ट्रिंग आप कुछ दु: ख के कारण हो सकता कुछ भी हल नहीं होगा अर्थात यह मूल स्ट्रिंग से गायब हो जाएगा। बेशक, $ एफ को परिभाषित किया गया था और शून्य या खाली के अलावा कुछ और सेट किया गया था।