我有一些压缩的pdf文件,我需要解压缩它们,然后仅保存第一页。我已经解压缩,并且保存的首页代码按其应有的方式工作。但是,当我解压缩时,从4000个文件夹中创建了大约150个文件夹,其中包含pdf和其他格式的文件,例如.txt,.csv等。所以我的问题是我需要拉出pdf文件并将其移至主文件夹以及其他pdf的其余部分,因此我可以批量保存每个pdf的首页。
解压缩后的文件夹结构为:
SecondStorage (main folder where all pdf end after unzip)
-Folder containing pdf and another file
-folder containing pdf and another file
-pdf
-pdf
PDF始终位于其余PDF所在的文件夹一级。
我正在尝试编写一个使用测试路径的foreach循环,以查看pdf是否已存在于主文件夹中,如果不存在,则将其移至父文件夹。我的测试路径一直存在问题,告诉我pdf文件存在于文件夹中,因此不会移动文件。
这是我当前正在使用的代码
$ListFiles = get-childitem -path $SecondStorage -Recurse -Filter "*.pdf"
$ShortList = $ListFiles | Where-Object -Property Name -Like "20*.pdf"
foreach ($i in $ShortList)
{
if (Test-Path -Path "$SecondStorage\$($i.name)" )
{
Move-Item -Path $i.fullname -Destination $SecondStorage
}
else
{
Write-Output "File already exists"
}
}
代码运行时,它告诉我该文件已存在。我当时以为我可以使用文字路径,但由于不断得到相同的结果,我缺少了一些东西。
感谢您的任何建议,我们将不胜感激。
答案 0 :(得分:0)
只需翻转您的if
语句。测试文件是否在主文件夹中时,您要输出文本,而不是Move;-)
if (Test-Path -Path "$SecondStorage\$($i.name)" )
{
Write-Output "File already exists"
}
else
{
Move-Item -Path $i.fullname -Destination $SecondStorage
}