问题描述
def foo(arr):
new_arr = np.empty(arr.size,dtype=np.uint64)
for i in range(arr.size):
x,y = arr[i]
e,n = ''
if x < 0:
e = '1'
else:
w = '2'
if y > 0:
n = '3'
else:
s = '4'
new_arr[i] = int(f'{abs(x)}{e}{abs(y){n}'.replace('.',''))
输出如下:
$Today = (Get-Date).AddMinutes(-20).ToString("MM/dd/yyyy hh:mm tt")
$filecreation = Get-ChildItem "D:\logs\" -Recurse
Foreach($file in $filecreation)
{
if ($file.LastWriteTime.ToString("MM/dd/yyyy hh:mm tt") -gt $Today)
{
Write-Host $file.LastWriteTime.ToString("MM/dd/yyyy hh:mm tt")
}
}
问题: 所以你看,我也已经在早上写了文件。我也想比较上午和下午。有人可以帮我吗?
此外,我在“ D:\ logs”内有多个日期文件夹。并且在输出中也捕获了相同的内容。我只想比较文件并复制。如何忽略Get-ChildItem中的文件夹?
请帮助。
此致
Mitesh Agrawal
解决方法
停止将[datetime]
个对象转换为字符串进行比较!
[datetime]
类型已经支持三向比较,因此完全不需要比较现有[datetime]
值的字符串表示-除非您使用严格的字节序日期格式(如yyyyMMddHHmmss
)也不能按预期工作-仅仅是因为按字母顺序排序的规则不同于根据时间描述进行排序的规则
# $Today is now a [datetime] value,not a string
$Today = (Get-Date).AddMinutes(-20)
$filecreation = Get-ChildItem "D:\logs\" -Recurse
Foreach($file in $filecreation)
{
# Now we just compare them directly as-is
if ($file.LastWriteTime -gt $Today)
{
Write-Host $file.LastWriteTime.ToString("MM/dd/yyyy hh:mm tt")
}
}
,
使用!D属性搜索文件而不是目录 您可以使用以下代码。这样就消除了子目录(通过使用!Directory或!D )搜索,并使用24小时格式获取添加了AM和PM的最终文件。
$Today = (Get-Date).AddMinutes(-20).ToString("MM/dd/yyyy HH:mm tt")
$filecreation = Get-ChildItem -Attributes !Directory -Path "D:\logs\"
Foreach($file in $filecreation)
{
if ($file.LastWriteTime.ToString("MM/dd/yyyy HH:mm tt") -gt $Today)
{
Write-Host $file.LastWriteTime.ToString("MM/dd/yyyy HH:mm tt")
}
}
除非且除非需要比较子目录文件,否则不需要递归