2017-04-18 57 views
0

我有下面的代碼檢查文件是否存在。如果它存在,它會寫入一行代碼,如果它不寫入另一行代碼。Powershell - 用戶計算機上是否存在文件|輸出特定文件

# PowerShell Checks If a File Exists 
$WantFile = "C:\Windows\System32\oobe\info\backgrounds\backgroundDefault.jpg" 
$FileExists = Test-Path $WantFile 
If ($FileExists -eq $True) {Write-Host "Path is OK"} else {Write-Host "Path is wrong"} 

我想這段代碼爲每個寫主機創建一個輸出文件。如果路徑爲true,則在c:\ true \ true.txt中創建一個文本文件,如果路徑錯誤,則在路徑C:\ false \ false.txt中創建一個txt。

我試過使用out-file,但無法讓它工作。任何幫助,將不勝感激。

感謝,

史蒂夫

回答

2

Write-Host cmdlet將寫入它的直接輸出到主機應用程序(在你的情況可能是控制檯)。

只需直接刪除它,管你的字符串Out-File

$WantFile = "C:\Windows\System32\oobe\info\backgrounds\backgroundDefault.jpg" 
$FileExists = Test-Path $WantFile 
# $FileExists is already either $true or $false 
if ($FileExists) { 
    # write to \true\true.txt 
    "Path is OK" |Out-File C:\true\true.txt 
} 
else { 
    # write to \false\false.txt 
    "Path is wrong" |Out-File C:\false\false.txt 
} 

作爲TheMadTechnician notes,你可以使用Tee-Object如果你想寫到屏幕上的文件字符串:

"Path is OK" |Tee-Object C:\true\true.txt |Write-Host 
+0

如果他同時想要兩個...''路徑正常「| Tee-Object C:\ Path \ To \ True.log [-append] | Write-Host' – TheMadTechnician

+0

@TheMadTechnician ++將更新答案 –

0

解決方案取決於你想要的東西......

要創建空白的文本文件,只需要使用

# PowerShell Checks If a File Exists 
$WantFile = "C:\Windows\System32\oobe\info\backgrounds\backgroundDefault.jpg" 
$FileExists = Test-Path $WantFile 
If ($FileExists -eq $True) {Write-Host "Path is OK"; Out-File C:\true\true.txt} else {Write-Host "Path is wrong"; Out-File C:\false\false.txt} 

如果該目錄不存在,交換Out-Filenew-item -force -type file

將文本寫入文件,與|更換;。 (如果這兩個都是真的,我相信你將需要創建該項目,並隨後將Out-File添加到New-Item中。)

相關問題