Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell将变量导出到excel_Excel_Powershell - Fatal编程技术网

Powershell将变量导出到excel

Powershell将变量导出到excel,excel,powershell,Excel,Powershell,好的,我的任务是在工作中学习powershell编写一些脚本。我有一些其他语言(只是一点点)的经验,比如Java、Python、HTML和CSS。Powershell是一个完全不同的野兽,所以我不确定有时候该怎么做。现在我正试图弄清楚如何将我的计算机名、域、用户名和日期时间输入excel文档。以下是我正在尝试的: $compname = $env:COMPUTERNAME | Select-Object @{Name='Computer Name'; Expression={$_.Compute

好的,我的任务是在工作中学习powershell编写一些脚本。我有一些其他语言(只是一点点)的经验,比如Java、Python、HTML和CSS。Powershell是一个完全不同的野兽,所以我不确定有时候该怎么做。现在我正试图弄清楚如何将我的计算机名、域、用户名和日期时间输入excel文档。以下是我正在尝试的:

$compname = $env:COMPUTERNAME | Select-Object @{Name='Computer Name'; Expression={$_.Computer_Name}}
$domain = $env:USERDNSDOMAIN | Select-Object @{Name='Domain'; Expression={$_.Domain}}
$user = $env:USERNAME | Select-Object @{Name='Username'; Expression={$_.Username}}
$date = Get-Date -format F | Select-Object @{Name='Date'; Expression={$_}}
$file = "$env:USERPROFILE\Desktop\test4.csv" 
$row = @($Date, $compname, $domain, $user)
$row | Export-Csv $file -NoType

我把我的变量放入一个数组,希望它能有所帮助,但运气不好。现在只打印日期。其他变量都是空的,我不知道为什么。我可以使用Write Out让它们工作,但不是我想要的方式,我假设导出CSV是我的最佳选择。我的假设是错误的吗?

当您对一个数组或一组对象(例如,
@(1,2,3)
是三元素数组)进行管道传输时,
导出Csv
将每个对象视为一个单独的行

如果要将不同列中的所有值放在同一行中,则需要创建一个对象,其中每个列中都包含所需的属性

您可以使用
newobject
cmdlet及其
-Property
参数创建自定义对象。将属性分配给哈希表,并将其用作
属性
参数,如下所示:

$Props = @{
    "Date" = Get-Date -Format f
    "Computer Name" = $env:COMPUTERNAME
    "Username" = $env:USERNAME
    "Domain" = $env:USERDNSDOMAIN
}

$MyObject = New-Object -TypeName psobject -Property $Props
现在,您可以通过管道将对象导出到
Csv

$FilePath = "$env:USERPROFILE\Desktop\test4.csv" 

$MyObject | Export-Csv $FilePath -NoTypeInformation
如果要更改列的顺序(或动态删除或添加新列),可以使用
Select Object

$MyObject | Select-Object 'Date','Domain','Username','Computer Name' | Export-Csv $FilePath -NoTypeInformation

$env:
变量没有单独的命名属性,它们只是字符串。在表达式中使用
$\uu0
而不是
$\u0.Name
,因此在第一个代码段中,是否向$Props添加属性?我以为这是在向它添加其他变量作为数组?好的,这正是我想要的,谢谢!在powershell中有很多不同的东西需要学习,我甚至都不知道该找什么。