首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的PowerShell脚本,要从CSV获取路径,请确认这些路径存在,然后使用真实结果编写另一个CSV

简单的PowerShell脚本,要从CSV获取路径,请确认这些路径存在,然后使用真实结果编写另一个CSV
EN

Stack Overflow用户
提问于 2018-06-05 03:46:46
回答 1查看 539关注 0票数 0

这是我的新手,我也是从PowerShell开始的,在尝试了几种方法之后,我需要你的帮助。一件简单的事情。

我正在尝试导入包含文件/路径列表的.csv,然后确认这些路由是否存在于硬盘上。然后,当我得到结果时,我需要将找到的路径的结果导出回.csv。我在c:\temp\original.csv中有这个CSV,其中包含以下数据:

代码语言:javascript
复制
Path
C:\temp\1.txt
C:\temp\2.txt
C:\temp\3.txt
C:\temp\4.txt
C:\temp\5.txt
C:\temp\6.txt

我有这些文件1.txt、3.txt和5.txt。我创建了这段代码,但所有结果都返回“False”。

代码语言:javascript
复制
$data=import-csv "c:\temp\original.csv"
foreach ($path in $data) {
test-Path -path $path | Write-Host }

当我使用下面的代码时,会出现文件路径,所以我认为它很好地保存了csv数据:

代码语言:javascript
复制
$data=import-csv "c:\temp\original.csv"
foreach ($path in $data) {
Write-Host test-Path -path $path }

我这样做,如果它显示文件为true:

代码语言:javascript
复制
Test-Path -Path C:\temp\1.txt

你能帮我完成脚本以获得正确的数据,并将实际结果导出到CSV吗?

我应该如何使结果“真实”,将其导出到.CSV并删除其所在位置的文件?我有一个30000个文件的列表,我需要检查这些文件已经被另一个进程删除,但我想保存那些仍然存在的文件列表,并且这些文件将被永久擦除。非常感谢,真的。

我真的很感激。提前谢谢。

一句问候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-05 05:02:24

这是我开始时使用的源数据。感谢您编辑此问题。

代码语言:javascript
复制
PS C:\src\t> type .\original.csv
Path
C:\temp\1.txt
C:\temp\2.txt
C:\temp\3.txt
C:\temp\4.txt
C:\temp\5.txt
C:\temp\6.txt

该代码导入.csv文件,然后使用path字段和指示该文件是否存在的表达式创建一个对象。

代码语言:javascript
复制
Import-Csv -Path '.\original.csv' |
    Select-Object -Property path, @{Name="exists";Expression={Test-Path -Path $_.path}} |
    Export-Csv -Path '.\original2.csv' -NoTypeInformation

这导致了以下输出。

代码语言:javascript
复制
PS C:\src\t> type .\original2.csv
"path","exists"
"C:\temp\1.txt","True"
"C:\temp\2.txt","True"
"C:\temp\3.txt","True"
"C:\temp\4.txt","False"
"C:\temp\5.txt","True"
"C:\temp\6.txt","True"

编辑:

此代码将删除已存在的文件,并将名称放入输出.csv日志文件中。当您确信将删除正确的文件时,请从Remove-Item cmdlet中删除-WhatIf

代码语言:javascript
复制
Import-Csv -Path '.\original.csv' |
    Where-Object { Test-Path $_.Path } |
    ForEach-Object {
        Remove-Item -Path $_.Path -WhatIf
        $_
    } |
    Export-Csv -Path '.\original2.csv' -NoTypeInformation
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50687775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档