Похоже, вам следует начинать с foreach после переменной $ paths, например:
foreach ($path in $paths) {
if ($path -like "*.sql") { #Note the use of one single item in the $paths array you have
$last = $path.split("\")[-1]
$result = #Whatever method you want to use to return a DateTime object
if ($result) { #### Now, this line doesn't make any sense. Do you want to compare a date to an older date or something? Maybe something like "if ($result -ge (Get-Date).addDays(-1) )
{ # Do your stuff }
Делать что-то вроде:
if ($paths -like "*.sql")
Не работает, потому что $ paths являетсямассив, и вы делаете сравнение строк, и никогда не встретятся два.Теперь, если вы пытаетесь найти, находится ли строка внутри файла, вы должны использовать что-то вроде «Get-Content» или «Import-Csv»
. Вы можете использовать командлет «Get-Date», чтобы получитьмного разных форматов для даты.Читайте об этом здесь .Если вы пытаетесь сравнить несколько дат с несколькими файлами, я бы начал с цикла for для файлов, как я делал там, а затем с цикла for для каждого файла для массива дат.Может быть, что-то вроде этого:
foreach ($path in $paths) {
foreach ($date in $dates) {
# Get the contents of a file and store it in a variable
# Search for the string in that variable and store the results in a variable
# Write to the console
} # End foreach ($date in $dates)
} # End foreach ($path in $paths)
Отправьте еще немного обновленного кода и посмотрим, что вы придумали.