Войти

Показать полную графическую версию : [решено] Передать переменную в код


epoddubniy
05-05-2022, 16:51
Помогите пожалуйста отредактировать правильно код.
Хочу получить список файлов по условию, заменив определенные участки кода переменными, но не получается.

Код

$Data=Get-Date -Format "dd.MM.yyyy"
$creation_time_lt='-1'
$creation_time_ge='-2'
$object_options='$_.creationtime -lt (get-date).date.adddays($creation_time_lt) -and $_.creationtime -ge (get-date).date.adddays($creation_time_ge)'
Get-ChildItem "С:\test" -Recurse | where-object {$object_options}


из вот этой части кода
Get-ChildItem "С:\test" -Recurse | where-object {$object_options}
выполнилась только эта часть
Get-ChildItem "С:\test" -Recurse | where-object {$object_options}

Fors1k
05-05-2022, 19:06
$Date = Get-Date
$creation_time_lt = -1
$creation_time_ge = -2
$wObject_options = {
$_.creationtime -lt $Date.AddDays($creation_time_lt) -and
$_.creationtime -ge $Date.AddDays($creation_time_ge)
}

Get-ChildItem "С:\test" -Recurse | Where-Object $wObject_options

epoddubniy
06-05-2022, 10:34
Fors1k, подскажите пожалуйста, как описать такой порядок действий:

1) В папке "C:\test" находятся файлы, в имени которых в конце есть нижнее подчеркивание и потом дата (например C:\test\Архив_02.05.2022)
2) Хочу скопировать этот архив в "D:\test", но от имени файла отрезать вот этот фрагмент "_02.05.2022"

Поправьте пожалуйста, меня или подскажите пожалуйста с кодом, если я сильно ошибаюсь с написанием.

function copirovanie {Get-ChildItem "С:\test" -Recurse | where-object $object_options | ForEach-Object -Process {
Copy-Item -Path $_.FullName -Destination "D:\test\$($_.FullName).Split('"'_'"')[-1]"
} }

Fors1k
07-05-2022, 01:04
function copirovanie {
$Date = Get-Date
$creation_time_lt = -1
$creation_time_ge = -2
$wObject_options = {
$_.creationtime -lt $Date.AddDays($creation_time_lt) -and
$_.creationtime -ge $Date.AddDays($creation_time_ge)
}

Get-ChildItem "С:\test" -Recurse | Where-Object $wObject_options | ForEach-Object {
$name = $_.Name -replace "_[^_]+$", $_.Extension
Copy-Item -LiteralPath $_.FullName -Destination "D:\test\$name"

}
}




© OSzone.net 2001-2012