Сценарий Powershell Copy, который проверяет файл перед копированием - PullRequest
1 голос
/ 16 ноября 2011

Я хотел бы знать, как создать скрипт powershell для копирования файлов из одного места в другое.

Сценарий необходим для проверки имени файла перед началом копирования.

Имя файла в текущем формате даты (swddmmyyy), например, sw16 / 11/2011. Это имя файла меняется каждый день, поэтому завтра это будет sw17112011.

Поэтому, когда скрипт запускается, он проверяет, совпадает ли имя файла с текущей датой, прежде чем копировать содержимое из папки. Файл находится в той же папке, что и содержимое, которое требует копирования.

$date = (get-date).adddays(0).ToString("ddMMyyyy") 
$filter = "sw_$date" 
$file = "c:\scripts\$filter" 
$check = test-path $file 
$script = $check -eq $true 
If ($script) {Get-ChildItem C:\scripts*.csv | Copy-Item -destination c:\test}

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 17 ноября 2011

Yo, ответьте на мой собственный вопрос, я использовал следующее решение.

$date = (get-date).ToString("ddMMyyyy")

$filter = "sw_$date"

$file = "c:\scripts\$filter"

If (test-path $file) 

{robocopy c:\scripts c:\test *.csv /xo}

У кого-нибудь есть какие-либо предложения о том, как это зациклить, чтобы он повторил попытку (test-path $ file eq false)?

0 голосов
/ 16 ноября 2011

Лучше использовать робокопию для таких целей: http://technet.microsoft.com/en-us/library/cc733145(WS.10).aspx

Комментарии к сценарию, который вы пробовали:

(get-date).adddays(0).ToString("ddMMyyyy") - почему вы добавляете 0 дней? Просто используйте

(get-date).tostring("ddMMyyyy")

Вы можете удалить $ check, $ script и т. Д. И просто выполните:

If (test-path $file) {Get-ChildItem C:\scripts*.csv | Copy-Item -destination c:\test}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...