每當爲我公司的FTP客戶端創建一個FTP文件夾時,我必須在兩臺服務器上創建兩個文件夾;服務器A和服務器B.我試圖給出下面的例子。在文件路徑中調用變量的Powershell腳本?
E:\FTP\CompanyName
E:\FTP\CompanyName\Incoming
E:\FTP\CompanyName\Outgoing
在兩臺服務器上都需要看起來像這樣。手動操作並不難,但我想學習Powershell,那麼爲什麼不自動完成一項簡單的任務呢?以下是我目前擁有的內容:
$Company = Read-Host 'Enter Company Name:'
$Credentials = Get-Credential
Write-Host 'Thank you! Creating client FTP folder on ServerA.' -ForegroundColor Magenta -BackgroundColor White
Invoke-Command ServerA {mkdir ("e:\ftp" + $Company + "\INCOMING")} -Credential $Credentials
Invoke-Command ServerA {mkdir ("e:\ftp" + $Company + "\OUTGOING")} -Credential $Credentials
Write-Host 'Done. Now creating duplicate folder on ServerB.' -ForegroundColor Magenta -BackgroundColor White
Invoke-Command ServerB {mkdir e:\ftp\$Company\INCOMING} -Credential $Credentials
Invoke-Command ServerB {mkdir e:\ftp\$Company\OUTGOING} -Credential $Credentials
Write-Host 'Done.' -ForegroundColor Magenta -BackgroundColor White
我們有一組專門用於服務器訪問的管理員憑據。腳本要求輸入這些憑據,然後詢問「CompanyName」。理論上,我希望將該變量應用於文件路徑的「CompanyName」部分。
我在腳本中嘗試了兩種不同的方式來測試。他們都完全跳過變量,只需在E:\ ftp中創建一個傳入和傳出文件夾。我在這裏錯過了什麼?
關於如何清理我的腳本的任何其他建議也是受歡迎的。我從中學到了很多東西,但還有很多東西需要學習。
謝謝,我會仔細看看事物的整個參數方面。我甚至沒有意識到變量不會存在於其他服務器上,但是現在它已經被指出給我了。當我通過變量(可以說我將變量定義爲「testCompany」)時,它會直接在E:上創建一個名爲「ftptestCompany」的文件夾?我假設它採用e:\ ftp的ftp部分,並認爲它是名稱的一部分。我會測試在mkdir命令中插入一個額外的\。 – MisterPuggles
我把它變成了e:\ ftp \,它工作的很好! – MisterPuggles