Ok, ini masalahnya. Saya mencoba membuat skrip PowerShell untuk membuat beberapa folder dan mengubah beberapa string dalam file .txt.
Tetapi karena Anda dapat menebak itu tidak berfungsi. Lihat konfigurasi saya di bawah ini:
Start-Transcript
[string]$CustomerName = Read-host "Enter the company name of the customer (e.g. Companyname)"
write-host ""
[string]$Hostname = Read-host "Enter the FQDN of the customers machine (e.g. HV00.domain.local)"
write-host ""
[string]$Logon = Read-host "Enter te logon credentials of the customers machine (e.g. domain\user)"
write-host ""
[string]$Password = Read-host "Enter the password of the customers machine"
write-host ""
cd C:\Monitor\Logs
mkdir .\$CustomerName
cd C:\Monitor\Logs\$CustomerName
mkdir .\$Hostname
cd $Home
cd C:\Monitor\Scripts\CustomScript
mkdir .\$CustomerName
cd $Home
$InputFile = "C:\Monitor\Scripts\BaseScript\BaseScript.txt"
$OutputFile = "C:\Monitor\Scripts\CustomScript\$CustomerName\$CustomerName.txt"
Ini tidak bekerja
(Get-Content $InputFile) | ForEach-Object { $_
-replace "hostname", "$Hostname" `
-replace "username@domainname", "$Logon" `
-replace "password", "$Password" } `
-replace "C:\Monitor\Logs\customername\hostname\", "C:\Monitor\Logs\$Customername\$Hostname\"
} | Set-Content $OutputFile
Ini berfungsi, tetapi saya hanya bisa mengganti satu string dengan itu
(Get-Content $InputFile) -replace "hostname", "$Hostname" > $OutputFile
Adakah yang punya ide?
windows
powershell
Jeffrey Jaspers
sumber
sumber
Jawaban:
Akan berguna jika Anda akan menempel kesalahan yang Anda dapatkan juga. Tetapi Anda memiliki satu braket keriting penutupan terlalu banyak dalam kode for-loop Anda, yang mungkin itu:
btw, Anda dapat mempersingkat jumlah kode pembuatan subfolder dengan membuat seluruh pohon sekaligus, yang dapat ditangani oleh PowerShell dengan sempurna
sumber