windows - Brug Out-File til at have en datavariabel inden for navnet på filen

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at bruge Out-File til at have en datavariabel inden for navnet på filen.
Men får en undtagelse som nedenfor


$EndDate = get-date -UFormat "\%Y-\%m-\%d \%H:\%M:\%S"
Out-File -FilePath "C:output$host-$EndDate.json

Out-File : The given path's format is not supported.
At E:sample.ps1:442 char:69
+ ... MaxValue) | Out-File -FilePath "E:output$serverHostName ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (:) [Out-File], NotSupportedException
    + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand

Bedste reference


I stedet for


Out-File -FilePath "C:output$host-$EndDate.json"


Benyt formatet (-f) operatøren: [6]


$EndDate = get-date -UFormat "\%Y-\%m-\%d \%H:\%M:\%S"
$myFileName = 'C:output{0}-{1}.json' -f $host, ($EndDate.ToString() -replace ':','')  -replace 's','' 
Out-File -filepath $myFileName


Du skal muligvis også bruge kommandoen New Item i stedet for Out-File, hvis din mappe ikke eksisterer. Din fejl synes at angive, at mappen muligvis ikke er tilgængelig, når du opretter filen. [7]


New-Item -path $myFileName -Force 


Som Bill Stewart påpegede, er $host et forbeholdt ord, så pas på at bruge det. [8]