Сопоставьте имя файла и скопируйте с помощью PowerShell - PullRequest
6 голосов
/ 05 июля 2011

Я изо всех сил пытаюсь заставить работать этот простой скрипт PowerShell. Я гуглил, но не могу найти ответ.

Как видите, я указываю источник и место назначения.

Переменная $ filedate делает dateadd для получения вчерашней даты, поскольку имя файла содержит дату.

Переменная $ filter содержит строку, по которой я ищу, включая часть даты.

Команда Get-ChildItem работает сама по себе, но когда я применяю фильтр, она ничего не возвращает. Чего мне не хватает, чтобы заставить это работать?

$source = "C:\MSSQL.1\Backup\"
$destination = "D:\MSSQL.2\Backup\"
$filedate = (get-date).AddDays(-1).tostring('yyyyMMdd')
$filter = "FULL_(local)_Product_" + $filedate + "*"
Get-ChildItem -Path $source -filter $filter | Copy-Item -Destination $destination

1 Ответ

13 голосов
/ 05 июля 2011

Попробуйте отфильтровать список файлов с помощью командлета Where-Object и оператора -match:

$source = "C:\MSSQL.1\Backup\"
$destination = "D:\MSSQL.2\Backup\"
$filedate = (Get-Date).AddDays(-1).ToString("yyyyMMdd")
$filter = "FULL_(local)_Product_$filedate"
Get-ChildItem -Path $source | Where-Object { $_.Name -match $filter } | Copy-Item -Destination $destination

Если вы все еще не получаете никаких результатов, тогда мынужно посмотреть на сам фильтр.

Связанные ресурсы:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...