[英]Adding space between paths in powershell
我的脚本出现问题,该脚本过滤了我的日志并裸露地打开了相关日志。 目前,我的问题是某些文件路径在打印时之间没有空格,而有些有空格。 我一直在尝试通过添加+“” +来获得空格,但这绝对没有任何作用。
我的密码
$files = ""
[xml]$photonconfig = Get-Content
C:\Users\Administrator\Desktop\PhotonServer.config
$photonconfig.SelectNodes("Configuration/*") | Select-Object -Expand Name |
% {$_.replace("CriticalOps","")} | ForEach {
$files+= Write-Host ""
$files+= Get-ChildItem C:\Users\Administrator\Desktop\log\log/*$_*.log |sort -property LastWriteTime -Descending | Select-Object -first 3
}
$clr= Get-ChildItem C:\Users\Administrator\Desktop\log\log/PhotonCLR.log |
Select-Object
$all = $files + $clr
$all
完整的代码:
$files = @()
[xml]$photonconfig = Get-Content
C:\Users\Administrator\Desktop\PhotonServer.config
$photonconfig.SelectNodes("Configuration/*") | Select-Object -Expand Name | % {$_.replace("CriticalOps","")} | ForEach {
$files+= Write-Output ""
$files+= Get-ChildItem C:\Users\Administrator\Desktop\log\log/*$_*.log |sort -property LastWriteTime -Descending | Select-Object -first 3
}
$clr= Get-ChildItem C:\Users\Administrator\Desktop\log\log/PhotonCLR.log | Select-Object
$all = "$clr " + "$files"
$cmd=Start-Process C:\Users\Administrator\Desktop\baretail\baretail.exe $all
请考虑以下对象类型:
PS D:\PShell> (Get-ChildItem).GetType().FullName
System.Object[]
PS D:\PShell> (Get-ChildItem)[0].GetType().FullName
System.IO.DirectoryInfo
PS D:\PShell> (Get-ChildItem)[-1].GetType().FullName
System.IO.FileInfo
PS D:\PShell> "".GetType().FullName
System.String
PS D:\PShell> ( Write-Host "" ) -eq $null
True
因此,有一些自动类型转换,例如$files+= Get-ChildItem …
$files = @()
代替字符串
$files = ""
Write-Host
。 [xml]$photonconfig = Get-Content C:\\…\\Desktop\\PhotonServer.config
将强烈键入变量 $photonconfig
$photonconfig = [xml]$( Get-Content C:\\…\\Desktop\\PhotonServer.config )
(我希望使用此变体)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.