如何将powershell查询的输出写入txt或csv文件?
我有一个保留批量IPaddress的查询,但找不到将输出写入txt或csv文件的方法。我尝试过使用export-csv和out-file cmdlet,但不起作用如何将powershell查询的输出写入txt或csv文件?,powershell,Powershell,我有一个保留批量IPaddress的查询,但找不到将输出写入txt或csv文件的方法。我尝试过使用export-csv和out-file cmdlet,但不起作用 Foreach ($line in (Import-Csv -header Scope,IP,MAC,Hostname -Path C:\temp\NewDHCP.csv)) { Add-DhcpServerv4Reservation -ComputerName dhcp server-ScopeId $line.scope
Foreach ($line in (Import-Csv -header Scope,IP,MAC,Hostname -Path C:\temp\NewDHCP.csv))
{
Add-DhcpServerv4Reservation -ComputerName dhcp server-ScopeId $line.scope -IPAddress $line.IP -ClientId $line.MAC -HostName $line.hostname -Description "Reservation for Printer"| outfile c:\temp\result.txt
}
Result.txt文件为空
希望看到输出是保留成功完成还是有错误。将
文件移出foreach括号外:
Foreach($line in $stuff) {Do-Stuff $line} | Out-File c:\temp\result.txt
如果在foreach
循环中保留Out File
,则默认行为将在每次迭代中覆盖该文件
另外,如果您删除Out文件
编辑
迈克是对的,前面的命令不会发出。
我通常会这样做,这很有效:
$stuff | %{Do-Stuff $_} | Out-File c:\temp\result.txt
将文件移出foreach括号外
:
Foreach($line in $stuff) {Do-Stuff $line} | Out-File c:\temp\result.txt
如果在foreach
循环中保留Out File
,则默认行为将在每次迭代中覆盖该文件
另外,如果您删除Out文件
编辑
迈克是对的,前面的命令不会发出。
我通常会这样做,这很有效:
$stuff | %{Do-Stuff $_} | Out-File c:\temp\result.txt
将文件移出foreach括号外
:
Foreach($line in $stuff) {Do-Stuff $line} | Out-File c:\temp\result.txt
如果在foreach
循环中保留Out File
,则默认行为将在每次迭代中覆盖该文件
另外,如果您删除Out文件
编辑
迈克是对的,前面的命令不会发出。
我通常会这样做,这很有效:
$stuff | %{Do-Stuff $_} | Out-File c:\temp\result.txt
将文件移出foreach括号外
:
Foreach($line in $stuff) {Do-Stuff $line} | Out-File c:\temp\result.txt
如果在foreach
循环中保留Out File
,则默认行为将在每次迭代中覆盖该文件
另外,如果您删除Out文件
编辑
迈克是对的,前面的命令不会发出。
我通常会这样做,这很有效:
$stuff | %{Do-Stuff $_} | Out-File c:\temp\result.txt
@乔恩离你很近,但你不能像那样给每个循环打管道
不过,你可以把它用$()括起来。这看起来有点恶心,但确实有效
$(Foreach ($line in (Import-Csv -header Scope,IP,MAC,Hostname -Path C:\temp\NewDHCP.csv))
{
Add-DhcpServerv4Reservation -ComputerName dhcp server-ScopeId $line.scope -IPAddress $line.IP -ClientId $line.MAC -HostName $line.hostname -Description "Reservation for Printer"
} ) | out-file c:\temp\result.txt
@乔恩离你很近,但你不能像那样给每个循环打管道
不过,你可以把它用$()括起来。这看起来有点恶心,但确实有效
$(Foreach ($line in (Import-Csv -header Scope,IP,MAC,Hostname -Path C:\temp\NewDHCP.csv))
{
Add-DhcpServerv4Reservation -ComputerName dhcp server-ScopeId $line.scope -IPAddress $line.IP -ClientId $line.MAC -HostName $line.hostname -Description "Reservation for Printer"
} ) | out-file c:\temp\result.txt
@乔恩离你很近,但你不能像那样给每个循环打管道
不过,你可以把它用$()括起来。这看起来有点恶心,但确实有效
$(Foreach ($line in (Import-Csv -header Scope,IP,MAC,Hostname -Path C:\temp\NewDHCP.csv))
{
Add-DhcpServerv4Reservation -ComputerName dhcp server-ScopeId $line.scope -IPAddress $line.IP -ClientId $line.MAC -HostName $line.hostname -Description "Reservation for Printer"
} ) | out-file c:\temp\result.txt
@乔恩离你很近,但你不能像那样给每个循环打管道
不过,你可以把它用$()括起来。这看起来有点恶心,但确实有效
$(Foreach ($line in (Import-Csv -header Scope,IP,MAC,Hostname -Path C:\temp\NewDHCP.csv))
{
Add-DhcpServerv4Reservation -ComputerName dhcp server-ScopeId $line.scope -IPAddress $line.IP -ClientId $line.MAC -HostName $line.hostname -Description "Reservation for Printer"
} ) | out-file c:\temp\result.txt
基本上只是供参考,但你应该已经做了,但可能有两点值得一提:
我希望这只是一个输入错误,但在问题中,您有OutFile
,它应该是Out File
将日志记录移到循环之外是一个好主意,但就您的方式而言,添加-Append
开关可能会得到您想要的结果。另外,根据您的输出对ASCII编码
我不熟悉cmdletAdd-DhcpServerv4Reservation
,但只要将结果发送到标准输出,这一切都可以工作 基本上只是供参考,但你应该做的工作,但可能有两点值得一提:
我希望这只是一个输入错误,但在问题中,您有OutFile
,它应该是Out File
将日志记录移到循环之外是一个好主意,但就您的方式而言,添加-Append
开关可能会得到您想要的结果。另外,根据您的输出对ASCII编码
我不熟悉cmdletAdd-DhcpServerv4Reservation
,但只要将结果发送到标准输出,这一切都可以工作 基本上只是供参考,但你应该做的工作,但可能有两点值得一提:
我希望这只是一个输入错误,但在问题中,您有OutFile
,它应该是Out File
将日志记录移到循环之外是一个好主意,但就您的方式而言,添加-Append
开关可能会得到您想要的结果。另外,根据您的输出对ASCII编码
我不熟悉cmdletAdd-DhcpServerv4Reservation
,但只要将结果发送到标准输出,这一切都可以工作 基本上只是供参考,但你应该做的工作,但可能有两点值得一提:
我希望这只是一个输入错误,但在问题中,您有OutFile
,它应该是Out File
将日志记录移到循环之外是一个好主意,但就您的方式而言,添加-Append
开关可能会得到您想要的结果。另外,根据您的输出对ASCII编码
我不熟悉cmdletAdd-DhcpServerv4Reservation
,但只要将结果发送到标准输出,这一切都可以工作 “你不能像那样用管道传递foreach循环”。当然可以,我一直都这么做。Nvm,看起来它不适用于Foreach
。我总是使用%{}
,这很好。奇怪的是“你不能像那样用管道输送每个循环”。当然可以,我一直都这么做。Nvm,看起来它不适用于Foreach
。我总是使用%{}
,这很好。奇怪的是“你不能像那样用管道输送每个循环”。当然可以,我一直都这么做。Nvm,看起来它不适用于Foreach
。我总是使用%{}
,并且