2017-07-31 20 views
-1

我想寫一些舊的VB到PS中,但是這裏有一些舊的DOS命令,我正努力寫入PowerShell。舉例來說,我想從檔案中刪除文件,它的用VB編寫的方法是:如何在Powershell中編寫舊的VB命令

command=(%comspec% /C DEL C:\\MyFile.txt",0,True) 


    If result <> 0 then 
     txtFile.writeline "ERROR" 
     txtFile.writeline "File does not exist.." 
     result = 0 
    Else  
     txtFile.writeline "Success"  
    End if 

在PowerShell中,將/ C DEL是我無法寫入行。我怎麼會寫在powershell這個命令,或者我會完全忽略它,只是繼續我的IF語句?

感謝,

+2

我會用'刪除項目「刪除文件。調用'cmd.exe'來做這將是不好的做法。你的問題的其餘部分是非常基本的東西,這表明你應該閱讀一些語言語法。 –

+1

另外,這裏沒有涉及「DOS」。 (Cmd.exe與DOS無關。) –

+2

您從VertigoRay收到了很好的回答。我強烈建議您在將VBScript轉換爲Powershell時不要嘗試對語法進行簡單的一對一轉換。相反,理解* VBScript正在做什麼,而是編寫慣用的PowerShell(使用正確的cmdlet,語法,樣式等),而不是產生次優代碼,這會延續可能導致錯誤的VBScript(您在此發佈的腳本不是我如何建議在VBScript中開始使用它,例如 - 它看起來像批量翻譯而不是寫入乾淨的VBS)。 – alroc

回答

3

在PowerShell中,只需使用Remove-Item。這種模仿你的VB很好:

try { 
    Remove-Item 'C:\MyFile.txt' -Force -ErrorAction 'Stop' 
    Write-Host 'Success' 
} catch [System.Management.Automation.ItemNotFoundException] { 
    Write-Host 'ERROR' 
    Write-Host 'File does not exist..' 
} 

當然,還有十幾個方面,這貓可剝皮:

if (Test-Path 'C:\MyFile.txt') { 
    Remove-Item 'C:\MyFile.txt' -Force 
    Write-Host 'Success' 
} else { 
    Write-Host 'ERROR' 
    Write-Host 'File does not exist..' 
} 

肯定有更多的選擇了...