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 在foreach循环中更新CSV文件_Powershell_Csv_Variables_Foreach - Fatal编程技术网

Powershell 在foreach循环中更新CSV文件

Powershell 在foreach循环中更新CSV文件,powershell,csv,variables,foreach,Powershell,Csv,Variables,Foreach,我在PowerShell中有一个foreach循环。它通过一些用户基于CSV文件移动数据来运行。 我想更新已运行的每一行的CSV文件,因此CSV如下所示: Username;OldData;NewData;Status User1;c:\Old;c:\new;Waiting User2;d:\Old;D:\New;Waiting 在User2完成后,再次将其更新为: Username;OldData;NewData;Status User1;c:\Old;c:\new;Done User

我在PowerShell中有一个
foreach
循环。它通过一些用户基于CSV文件移动数据来运行。 我想更新已运行的每一行的CSV文件,因此CSV如下所示:

Username;OldData;NewData;Status User1;c:\Old;c:\new;Waiting User2;d:\Old;D:\New;Waiting 在User2完成后,再次将其更新为:

Username;OldData;NewData;Status User1;c:\Old;c:\new;Done User2;d:\Old;D:\New;Done 然后运行
foreach
(伪代码)

在以下提示之后,将更改的$Table保存为

$Table | Export-Csv C:\csv.csv -NoTypeInformation
为避免在连续运行中多次处理同一行,请排除状态为“已完成”的行

## Q:\Test\2019\06\07\SO_56495983.ps1

$File = '.\csv.csv' # 'c:\csv.csv'  #
$Table = Import-Csv $File -Delimiter ';'

foreach ($Row in ($Table|Where Status -eq 'Waiting')) {
    #Copy-Content $row.OldData $row.NewData
    $row.Status = "Done"
}

$Table
$Table | Export-Csv $File  -Delimiter ';' -NoTypeInformation
在以下提示之后,将更改的$Table保存为

$Table | Export-Csv C:\csv.csv -NoTypeInformation
为避免在连续运行中多次处理同一行,请排除状态为“已完成”的行

## Q:\Test\2019\06\07\SO_56495983.ps1

$File = '.\csv.csv' # 'c:\csv.csv'  #
$Table = Import-Csv $File -Delimiter ';'

foreach ($Row in ($Table|Where Status -eq 'Waiting')) {
    #Copy-Content $row.OldData $row.NewData
    $row.Status = "Done"
}

$Table
$Table | Export-Csv $File  -Delimiter ';' -NoTypeInformation

删除
Update Csv
。删除
Update Csv
。这样它就不会打乱循环以更改它正在运行的活动表执行´$row.Status=“Done”´时,我忽略了缺少的
-Delimiter';'。现在应该可以正常工作了。这样就不会因为更改它正在运行的活动表而打乱循环了?-执行´$row.Status=“Done”´时,我忽略了缺少的
-Delimiter';'。现在应该可以正常工作了。
## Q:\Test\2019\06\07\SO_56495983.ps1

$File = '.\csv.csv' # 'c:\csv.csv'  #
$Table = Import-Csv $File -Delimiter ';'

foreach ($Row in ($Table|Where Status -eq 'Waiting')) {
    #Copy-Content $row.OldData $row.NewData
    $row.Status = "Done"
}

$Table
$Table | Export-Csv $File  -Delimiter ';' -NoTypeInformation