2013-06-19 69 views
0

基本上,我希望寫一個腳本來檢查,如果在網絡上的特定文件存在一定的字符串,返回0或1搜索Excel格式的字符串

所以基本上:

If "C:\myfile.xls" exists THEN 
    If "C:\myfile.xls" contains string "no data found" THEN 
    Return 0 
    ELSE 
    Return 1 
ELSE 
    Return 0 
END 

這可能嗎?預先感謝!

我相信我跑2.0

Name       Value 
----       ----- 
CLRVersion      2.0.50727.5466 
BuildVersion     6.1.7601.17514 
PSVersion      2.0 
WSManStackVersion    2.0 
PSCompatibleVersions   {1.0, 2.0} 
SerializationVersion   1.1.0.1 
PSRemotingProtocolVersion  2.1 

回答

1

你不應該是問/除非你沒有問題,希望答案可能是「是」或「否」。在你的情況下,它是「是」,但你需要安裝在主機上的Excel:

function Check-File($filename) { 
    $found = 0 

    if (Test-Path -LiteralPath $filename) { 
    $xl = New-Object -COM "Excel.Application" 
    $wb = $xl.Workbooks.Open($filename) 
    if ([bool]$xl.Cells.Find("no data found")) { $found = 1 } 
    $wb.Close() 
    $xl.Quit() 
    } 

    $found 
} 

Check-File "C:\myfile.xls" 
+0

缺少開放的大括號。固定。 –

+0

Doh! :)看起來它工作得很好,謝謝你,你搖滾! – Jay