Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Пакетное перемещение файлов на фтп (os windows 8)

Ответить
Настройки темы
CMD/BAT - Пакетное перемещение файлов на фтп (os windows 8)

Новый участник


Сообщения: 41
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цель: создать батник перемещения файлов с локальной папки на фтп сервер только с расширением *.opr

То есть есть некая папка в которую скапливаются файлы. Надо что бы раз в час (ну это я сделаю планировщиком) файлы с расширением .opr перемещались на фтп сервер в кодировке ASCII. Именно перемещались, а не копировались. Возможно ли это сделать стандартным консольным фтп?
Файлы после копирования на сервер забираются от туда в течении часа и поэтому если сравнивать оба файла, то это должно быть на лету.
Сделал я это сторонней утилитой wput.exe,но у нее есть некоторые недостатки
1. Она часто пропускает файлы особенно если их много скопилось и перемещает их не все. То есть 2-3 файла могут месяцами не передаваться потому, что она их тупо не видит наверное.
2. При копировании появляется окно команд которое раздражает работу сотрудников а следовательно и меня

Отправлено: 11:57, 25-06-2013

 

Новый участник


Сообщения: 41
Благодарности: 0

Профиль | Отправить PM | Цитировать


open
8.8.8.8
login
password
cd Local
ascii
mput l:\temp\*.opr
bye


но он только скопирует...как (переместить) удалить файлы с локального компьютера с проверкой, что они уже копировались...

Отправлено: 13:04, 25-06-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 41
Благодарности: 0

Профиль | Отправить PM | Цитировать


ап

Отправлено: 13:56, 01-07-2013 | #3


Аватара для sunnykey

Пользователь


Сообщения: 124
Благодарности: 47

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#Powershell script.
#Don't forget unlock script executing by 
#using command "Set-ExecutionPolicy RemoteSigned" or "Set-ExecutionPolicy Unrestricted"
$Folder2Ftp="C:\MyFolder\*"
$FileExtMask="*.opt"
$FtpCmdFile="c:\1.txt"
$FileList=Get-ChildItem -Path $Folder2Ftp -Include $FileExtMask -Force
"Получен список файлов для перемещения"
foreach ($el in $FileList) {
    "open 8.8.8.8" | Out-File -FilePath $FtpCmdFile -Encoding ascii
    "login" | Out-File -FilePath $FtpCmdFile -Append -Encoding ascii
    "password" | Out-File -FilePath $FtpCmdFile -Append -Encoding ascii
    "cd Local" | Out-File -FilePath $FtpCmdFile -Append -Encoding ascii
    "put $el" | Out-File -FilePath $FtpCmdFile -Append -Encoding ascii
    "bye" | Out-File -FilePath $FtpCmdFile -Append -Encoding ascii
    "Команды для отправки файла $el сформированы"
    if ((cmd /c ftp -A -s:$FtpCmdFile | Select-String -Pattern "226 Transfer OK" -Encoding ascii) -ne $null) {
        "$el скопирован на ftp"
        $el | Remove-Item -Force
        "$el удалён с диска"
    } else {
        "Файл $el не скопировался на ftp. Удаления не будет"
    }
}
Чтобы не было видно никаких окон создай задание
Код: Выделить весь код
powershell.exe -WindowStyle Hidden -File c:\myscript.ps1

-------
cmd умри, powershell живи=)
Powershel 4.0 microsoft.com/ru-ru/download/details.aspx?id=40855

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:53, 01-07-2013 | #4


Новый участник


Сообщения: 41
Благодарности: 0

Профиль | Отправить PM | Цитировать


Надо переходить на ps )))спасибо!

Скрипт останавливается на "Получен список файлов для перемещения"
А все из за того что в файле 1.txt создаются строки пути до файлов с пробелами без кавычек... то есть put C:\Users\user\AppData\Local\VirtualStore\Program Files (x86)\

как сделать так что бы строчка была после put была в кавычках?

Последний раз редактировалось ~Cash~, 02-07-2013 в 16:13.


Отправлено: 09:04, 02-07-2013 | #5


Аватара для sunnykey

Пользователь


Сообщения: 124
Благодарности: 47

Профиль | Отправить PM | Цитировать


Цитата ~Cash~:
Скрипт останавливается на "Получен список файлов для перемещения"
А все из за того что в файле 1.txt создаются строки пути до файлов с пробелами без кавычек... то есть put C:\Users\user\AppData\Local\VirtualStore\Program Files (x86)\ »
Код: Выделить весь код
"put `"$el`"" | Out-File -FilePath $FtpCmdFile -Append -Encoding ascii
Тогда строчку подправь

-------
cmd умри, powershell живи=)
Powershel 4.0 microsoft.com/ru-ru/download/details.aspx?id=40855

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:31, 02-07-2013 | #6


Новый участник


Сообщения: 41
Благодарности: 0

Профиль | Отправить PM | Цитировать


Теперь трабла из за попадания в строку имен файлов на русском ...они заменяются вопросами в файле и не копируются

Отправлено: 09:15, 03-07-2013 | #7


Аватара для sunnykey

Пользователь


Сообщения: 124
Благодарности: 47

Профиль | Отправить PM | Цитировать


Цитата ~Cash~:
Теперь трабла из за попадания в строку имен файлов на русском ...они заменяются вопросами в файле и не копируются »
Проблема в кодировке "us-ascii" там только латиница (ftp.exe криво работает с кириллицей), подогнать скрипт под winscp. Он хавает Unicode

-------
cmd умри, powershell живи=)
Powershel 4.0 microsoft.com/ru-ru/download/details.aspx?id=40855


Отправлено: 17:31, 03-07-2013 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Не лучше ли взять пример (второй) от Ильи: PowerShell – работаем с FTP сервером | ILYA Sazonov: ITPro с нативной работой с ftp?!

Отправлено: 17:38, 03-07-2013 | #9


Аватара для sunnykey

Пользователь


Сообщения: 124
Благодарности: 47

Профиль | Отправить PM | Цитировать


Цитата sunnykey:
Проблема в кодировке "us-ascii" там только латиница (ftp.exe криво работает с кириллицей), подогнать скрипт под winscp. Он хавает Unicode »
Сделал с поддержкой русского языка
Код: Выделить весь код
#Powershell script.
#Don't forget unlock script executing by 
#using command "Set-ExecutionPolicy RemoteSigned" or "Set-ExecutionPolicy Unrestricted"
$Folder2Ftp="D:\dl\*"
$FileExtMask="*.opt"
$FtpCmdFile="c:\1.txt"
$FileList=Get-ChildItem -Path $Folder2Ftp -Include $FileExtMask -Force
$WinSCP="D:\util2flash\winscp.com"
"Получен список файлов для перемещения"
foreach ($el in $FileList) {
    "open ftp://login:1@vtest" | Out-File -FilePath $FtpCmdFile
    "cd local" | Out-File -FilePath $FtpCmdFile -Append
    "put $el" | Out-File -FilePath $FtpCmdFile -Append
    "bye" | Out-File -FilePath $FtpCmdFile -Append
    "Команды для отправки файла $el сформированы"
    if ((cmd.exe "/c $WinSCP /script=$FtpCmdFile" | Select-String -Pattern "100%") -ne $null) {
        "$el скопирован на ftp"
        $el | Remove-Item -Force
        "$el удалён с диска"
    } else {
        "Файл $el не скопировался на ftp. Удаления не будет"
    }
}
Скачай WinSCP

Цитата Iska:
Не лучше ли взять пример (второй) от Ильи: PowerShell – работаем с FTP сервером | ILYA Sazonov: ITPro с нативной работой с ftp?! »
Надо вспоминать программирование

-------
cmd умри, powershell живи=)
Powershel 4.0 microsoft.com/ru-ru/download/details.aspx?id=40855


Отправлено: 10:18, 04-07-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Пакетное перемещение файлов на фтп (os windows 8)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Пакетное переименование файлов ArsenBespalov Скриптовые языки администрирования Windows 9 11-08-2016 03:56
CMD/BAT - [решено] Пакетное переименование с создание сложных имён файлов alexmoreman Скриптовые языки администрирования Windows 4 28-11-2011 02:27
CMD/BAT - [решено] Создание папок по дате получения файлов и перемещение в них файлов KamikadZZe Скриптовые языки администрирования Windows 1 01-09-2011 14:15
Пакетное преобразование файлов PCLAlex AutoIt 1 21-06-2011 10:09
[решено] Перемещение Log-файлов в Windows Server 2003 FATruden Microsoft Windows NT/2000/2003 2 01-10-2009 12:12




 
Переход