获取特定文件的LastWriteTime

时间:2019-09-06 15:52:52

标签: windows powershell

我正在使用Windows 10 Enterprise 1709和PowerShell ISE v5。我试图通过检查测试路径是否保存文件来获取文件Deployment.properties的最后写入时间,如果包含,请写入该文件的LastWriteTime。我不确定我的做法是否正确。向我展示如何进行这项工作的任何帮助将不胜感激。我尝试了几种选择,但这是唯一不会产生错误的选择。但是,代码可以运行,可以正确完成,但不会产生和输出。我的代码首先在下面列出,然后在PowerShell ISE屏幕上看到输出。

Set-ExecutionPolicy Bypass

$env:COMPUTERNAME = HostName

$DeplPath = "AppData\LocalLow\Sun\Java\Deployment\deployment.properties"

$dateTime = foreach ($User in Get-ChildItem C:\Users -Directory) {
    $folderFile = Join-Path $javauser.FullName $DeplPath
    if (Test-Path $folderFile) {
        $testResult = Get-ChildItem  | select -Property fullName, LastWriteTime 
        } Else {
        $testResult = "Not found - deployment.properties"
        }
}
$dateTime

下面是我得到的输出,该输出不返回任何信息。

PS C:\WINDOWS\system32> Set-ExecutionPolicy Bypass

$env:COMPUTERNAME = HostName

$DeplPath = "AppData\LocalLow\Sun\Java\Deployment\deployment.properties"

$dateTime = foreach ($User in Get-ChildItem C:\Users -Directory) {
    $filelist = Join-Path $User.FullName $file
    if (Test-Path $filelist) {
        $testResult = Get-ChildItem $dateTime | select -Property fullName, LastWriteTime 
        } Else {
        $testResult = "Not found - deployment.properties"
        }
}
$dateTime


PS C:\WINDOWS\system32> 

下面新修改的代码

Set-ExecutionPolicy Bypass

$env:COMPUTERNAME = HostName

$DeplPath = "AppData\LocalLow\Sun\Java\Deployment\deployment.properties"

$dateTime = foreach ($User in Get-ChildItem C:\Users -Directory) {
    $folderFile = Join-Path $User.FullName $DeplPath
    if (Test-Path $folderFile) {
       $testResult = Get-ChildItem  | select -Property fullName, $DeplPath.LastWriteTime 
        } Else {
        $testResult = "Not found - deployment.properties"
        }
        [PSCustomObject]@{
        "Computer Name" = $env:COMPUTERNAME
        "Java User True/False"       = $TestResult
        "Users"         = $user.Name
        "Last Write Time" = $testResult.LastWriteTime
    }
}
$dateTime

1 个答案:

答案 0 :(得分:1)

尝试一下。您为get-childitem选择的媒体资源标签错误。

Set-ExecutionPolicy Bypass

$env:COMPUTERNAME = HostName

$DeplPath = "AppData\LocalLow\Sun\Java\Deployment\deployment.properties"

$dateTime = foreach ($User in Get-ChildItem C:\Users -Directory) {
    $folderFile = Join-Path $User.FullName $DeplPath
$test = Test-Path $folderFile
if ($test -eq $True)  {
       $testResult = Get-ChildItem $folderfile | select -Property Name, LastWriteTime 
        } Else {
        $testResult = "Not found - deployment.properties"
        }
        [PSCustomObject]@{
        "Computer Name" = $env:COMPUTERNAME
        "Java User True/False"       = $TestResult
        "Users"         = $user.Name
        "Last Write Time" = $testResult.LastWriteTime
    }
}
$dateTime