gpt4 book ai didi

powershell - 在 Windows PowerShell 中检查文件是否存在?

转载 作者:行者123 更新时间:2023-12-03 05:45:02 27 4
gpt4 key购买 nike

我有一个脚本,它比较磁盘两个区域中的文件,并将最新文件复制到具有较旧修改日期的文件上。

$filestowatch=get-content C:\H\files-to-watch.txt

$adminFiles=dir C:\H\admin\admin -recurse | ? { $fn=$_.FullName; ($filestowatch | % {$fn.contains($_)}) -contains $True}

$userFiles=dir C:\H\user\user -recurse | ? { $fn=$_.FullName; ($filestowatch | % {$fn.contains($_)}) -contains $True}

foreach($userfile in $userFiles)
{

$exactadminfile= $adminfiles | ? {$_.Name -eq $userfile.Name} |Select -First 1
$filetext1=[System.IO.File]::ReadAllText($exactadminfile.FullName)
$filetext2=[System.IO.File]::ReadAllText($userfile.FullName)
$equal = $filetext1 -ceq $filetext2 # case sensitive comparison

if ($equal) {
Write-Host "Checking == : " $userfile.FullName
continue;
}

if($exactadminfile.LastWriteTime -gt $userfile.LastWriteTime)
{
Write-Host "Checking != : " $userfile.FullName " >> user"
Copy-Item -Path $exactadminfile.FullName -Destination $userfile.FullName -Force
}
else
{
Write-Host "Checking != : " $userfile.FullName " >> admin"
Copy-Item -Path $userfile.FullName -Destination $exactadminfile.FullName -Force
}
}

这是files-to-watch.txt的格式

content\less\_light.less
content\less\_mixins.less
content\less\_variables.less
content\font-awesome\variables.less
content\font-awesome\mixins.less
content\font-awesome\path.less
content\font-awesome\core.less

我想修改它,以便避免在两个区域中都不存在该文件时执行此操作并打印警告消息。有人可以告诉我如何使用 PowerShell 检查文件是否存在吗?

最佳答案

只是提供the alternativeTest-Path cmdlet (因为没有人提到它):

[System.IO.File]::Exists($path)

做(几乎)相同的事情
Test-Path $path -PathType Leaf

除了不支持通配符

关于powershell - 在 Windows PowerShell 中检查文件是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31879814/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com