我下面有两个Powershell程序,他们做了不同的事情,但我们需要他们在导出为CSV时做大致类似的事情。
Get-ChildItem C:\Users\user\Desktop\here -Recurse |
where {!$_.PSIsContainer} |
Select-Object * |
Export-Csv -NoTypeInformation -Path C:\Users\user\Desktop\Output\output.csv |
% {$_.Replace('"','')}
获取有关目录的所有详细信息,当我在Excel中打开CSV时,所有内容都在不同的列中 - 完美。
plink.exe -ssh root@user -pw password -m C:\Users\user\Desktop\Scrips\LinuxScriptCommand.txt > C:\Users\user\Desktop\Output\Linux.csv
在我的云上运行df -h
并返回我的驱动器上留下的空间,这就是我想要的,但是当我在Excel中打开此CSV时,它会让我通过文本导入向导,而另一个没有&#39 ;吨。
我无法找到自动化文本向导部分的方法,有人能为我提供一些见解吗?如果你有办法优化它,请告诉我。
答案 0 :(得分:1)
将df -h
命令更改为以逗号分隔值输出:
df -h | awk '{print $1","$2","$3","$4","$5","$6" "$7}'
保存到单个单元格时遇到的问题是UNIX行结尾无法在Windows中正确显示。这可以通过替换它们来解决:
plink.exe -ssh root@user -pw password -m C:\Users\user\Desktop\Scrips\LinuxScriptCommand.txt | foreach {
if (([regex] "`r`n$").IsMatch($_) -eq $false) { $_ -replace "`n", "`r`n" } else { $_ }
} | Set-Content "C:\Users\user\Desktop\Output\Linux.csv"
如果您使用的是较新版本的Powershell,则可以使用-File
参数仅返回文件。当你删除其他不必要的部分时,这会使你的其他命令大大缩短:
Get-ChildItem C:\Users\user\Desktop\here -Recurse -File | Export-CSV C:\Users\user\Desktop\Output\output.csv -NoTypeInformation