My purpose is to write some string into a file, and the file path is something like %SystemDrive%\temp.txt
. The pipeline looks like
Write-Output "test" | Out-File -FilePath %SystemDrive%\temp.txt
I can get %SystemDrive%
by (Get-ChildItem -Path Env:\SystemDrive).Value
, but how can I put it into the pipeline?
CodePudding user response:
You could use Join-Path
wrapped in parenthesis to set the FilePath
for Out-File
.
Write-Output "test" | Out-File -FilePath (Join-Path -Path (Get-ChildItem -Path Env:\SystemDrive).Value -ChildPath "\temp.txt")
The path that this yields on my system is:
C:\temp.txt
You can add the -WhatIf
switch to the end of the command to that it works without actually writing the file.