Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.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查询的输出写入txt或csv文件?_Powershell - Fatal编程技术网

如何将powershell查询的输出写入txt或csv文件?

如何将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

我有一个保留批量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 -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编码

  • 我不熟悉cmdlet
    Add-DhcpServerv4Reservation
    ,但只要将结果发送到标准输出,这一切都可以工作

    基本上只是供参考,但你应该做的工作,但可能有两点值得一提:

  • 我希望这只是一个输入错误,但在问题中,您有
    OutFile
    ,它应该是
    Out File
  • 将日志记录移到循环之外是一个好主意,但就您的方式而言,添加
    -Append
    开关可能会得到您想要的结果。另外,根据您的输出对ASCII编码

  • 我不熟悉cmdlet
    Add-DhcpServerv4Reservation
    ,但只要将结果发送到标准输出,这一切都可以工作

    基本上只是供参考,但你应该做的工作,但可能有两点值得一提:

  • 我希望这只是一个输入错误,但在问题中,您有
    OutFile
    ,它应该是
    Out File
  • 将日志记录移到循环之外是一个好主意,但就您的方式而言,添加
    -Append
    开关可能会得到您想要的结果。另外,根据您的输出对ASCII编码

  • 我不熟悉cmdlet
    Add-DhcpServerv4Reservation
    ,但只要将结果发送到标准输出,这一切都可以工作

    基本上只是供参考,但你应该做的工作,但可能有两点值得一提:

  • 我希望这只是一个输入错误,但在问题中,您有
    OutFile
    ,它应该是
    Out File
  • 将日志记录移到循环之外是一个好主意,但就您的方式而言,添加
    -Append
    开关可能会得到您想要的结果。另外,根据您的输出对ASCII编码

  • 我不熟悉cmdlet
    Add-DhcpServerv4Reservation
    ,但只要将结果发送到标准输出,这一切都可以工作

    “你不能像那样用管道传递foreach循环”。当然可以,我一直都这么做。Nvm,看起来它不适用于
    Foreach
    。我总是使用
    %{}
    ,这很好。奇怪的是“你不能像那样用管道输送每个循环”。当然可以,我一直都这么做。Nvm,看起来它不适用于
    Foreach
    。我总是使用
    %{}
    ,这很好。奇怪的是“你不能像那样用管道输送每个循环”。当然可以,我一直都这么做。Nvm,看起来它不适用于
    Foreach
    。我总是使用
    %{}
    ,并且