首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Powershell -设置"LastWriteTime“属性,使其对文件夹中的每个文件都不同

Powershell -设置"LastWriteTime“属性,使其对文件夹中的每个文件都不同
EN

Stack Overflow用户
提问于 2022-05-27 06:25:29
回答 1查看 84关注 0票数 0

我试图更改多个文件上的"LastWriteTime“属性,以便使用随机数使它们不同。我用一些.txt文件创建了一个测试文件夹,我正在尝试更改属性。

这就是我目前的情况:

代码语言:javascript
运行
复制
$path = "D:\Test\Test"
$array = @(Get-ChildItem -Path $path)
for($i = 0; $i -le $array.Count; $i++)
{
    $randomNumber = Get-Random -Minimum 10 -Maximum 50
    $array[$i].LastWriteTime = (Get-Date).AddMinutes($randomNumber)
}

错误消息声明:

“在此对象上找不到'LastWriteTime‘属性。”

但是,一旦我在Powershell ISE中运行了脚本/选择并将数组存储在内存中,我就可以单独地更改数组的成员,而无需使用以下戏剧:

代码语言:javascript
运行
复制
$randomNumber = Get-Random -Minimum 10 -Maximum 50
$array[1].LastWriteTime = (Get-Date).AddMinutes($randomNumber)

有人能给出为什么我不能使用for循环更改数组成员的指针吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-27 06:59:13

我在Powershell7上测试了您的脚本,它为三个文件中的一个文件抛出了一个错误。有趣的是,日期正按所有人的预期进行更改。可能是这个模块的错误。

另一点是,如果我们使用For each而不是For,那么这个错误就不会出现。

代码语言:javascript
运行
复制
$path = "C:\temp"
$array = @(Get-ChildItem -Path $path -Recurse)

Write-Host Before For each
$array | Select Name, LastWriteTime
$array |ForEach-Object {
 $_.LastWriteTime = Get-Date
}

Write-Host After For each
$array | Select Name, LastWriteTime
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72401285

复制
相关文章

相似问题

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