PDA Внутренние файлы FTP-файлов копируются [дубликаты]

Конечно, вы можете. Первый способ является нормальным, но в некоторых случаях вы также можете использовать функции list или map() .

40
задан Oswald 23 April 2013 в 00:03
поделиться

8 ответов

Ответ 0x90h помог много ...

Я сохранил этот файл как u.ftp:

open 10.155.8.215 
user
password
lcd /D "G:\Subfolder\"
cd  folder/
binary
mget file.csv
disconnect
quit

Затем я запустил этот файл команда:

ftp -i -s:u.ftp

И это сработало !!!

Большое спасибо человеку:)

48
ответ дан Community 25 August 2018 в 06:39
поделиться

Я написал скрипт как * .sh файл

#!/bin/sh
set -x
FTPHOST='host-address'
FTPUSER='ftp-username'
FTPPASSWD='yourPass'

ftp -n -v $FTPHOST << EOT
ascii
user $FTPUSER $FTPPASSWD
prompt
##Your commands
bye
EOT

Прекрасно работает для меня

-1
ответ дан Ghayel 25 August 2018 в 06:39
поделиться

Вот что я использую. В моем случае определенные ftp-серверы (pure-ftpd для одного) всегда будут запрашивать имя пользователя даже с параметром -i и улавливать команду «имя пользователя» в качестве интерактивного пароля. Что я делаю, он вводит несколько команд NOOP (без операции), пока сервер ftp не истечет, а затем войдите в систему:

open ftp.example.com 
noop
noop
noop
noop
noop
noop
noop
noop
user username password
...
quit
0
ответ дан Justin Goldberg 25 August 2018 в 06:39
поделиться

Тем не менее, это старая должность, одна из альтернатив - использовать параметры команды:

ftp -n -s:ftpcmd.txt

. -n будет подавлять начальный логин, а затем содержимое файла будет: (замените 127.0. 0.1 с вашим URL-адресом FTP-сайта)

open 127.0.0.1
user myFTPuser myftppassword
other commands here...

Это позволяет избежать использования пользователя / пароля на отдельных линиях

9
ответ дан Mark Schultheiss 25 August 2018 в 06:39
поделиться

Каждая строка командного файла будет выполнена; но только после завершения предыдущей строки. В вашем случае, как только он попадет на ftp-линию, программа ftp начнет и возьмет на себя ввод пользователя. Когда он будет закрыт, остальные строки будут выполнены. Это означает, что имя пользователя / пароль никогда не отправляются в программу FTP и вместо этого будут отправлены в командную строку, когда программа ftp будет закрыта.

Вместо этого вам нужно передать все, что вам нужно, в командной строке ftp. Что-то вроде:

@echo off
echo user MyUserName> ftpcmd.dat
echo MyPassword>> ftpcmd.dat
echo bin>> ftpcmd.dat
echo put %1>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat SERVERNAME.COM
del ftpcmd.dat
5
ответ дан NotMe 25 August 2018 в 06:39
поделиться

Используйте

ftp -s:FileName 

, как описано в Документация по продукту Windows XP Professional .

Имя файла, которое вы должны указать вместо FileName должен содержать команды FTP, которые вы хотите отправить на сервер. Среди этих команд:

  • открыть компьютер [Порт] для подключения к FTP-серверу,
  • пользователь UserName [Password] [Account] для аутентификации с FTP-сервером,
  • получить RemoteFile [LocalFile] для извлечения файла,
  • выйти, чтобы завершить сеанс FTP и завершить работу ftp-программы.

Можно найти больше команд в подкомандах Ftp .

4
ответ дан Oswald 25 August 2018 в 06:39
поделиться

Вы также можете использовать PowerShell; это то, что я сделал. Поскольку мне нужно было загрузить файл на основе шаблона, я динамически создавал командный файл, а затем оставил ftp.

Я использовал основные команды PowerShell. Мне не нужно было загружать какие-либо дополнительные компоненты. Сначала я проверил, существует ли требуемое количество файлов. Если они я второй раз вызывал FTP, у меня есть Mget. Я запускаю это из Windows Server 2008 , подключающегося к удаленному серверу Windows & nbsp; XP.

function make_ftp_command_file($p_file_pattern,$mget_flag)
{
    # This function dynamically prepares the FTP file.
    # The file needs to be prepared daily because the
    # pattern changes daily.
    # PowerShell default encoding is Unicode.
    # Unicode command files are not compatible with FTP so
    # we need to make sure we create an ASCII file.

    write-output "USER" | out-file -filepath C:\fc.txt -encoding ASCII
    write-output "ftpusername" | out-file -filepath C:\fc.txt -encoding ASCII -Append
    write-output "password" | out-file -filepath C:\fc.txt -encoding ASCII -Append
    write-output "ASCII" | out-file -filepath C:\fc.txt -encoding ASCII -Append
    If ($mget_flag -eq "Y")
    {
        write-output "prompt" | out-file -filepath C:\fc.txt -encoding ASCII -Append
        write-output "mget $p_file_pattern" | out-file -filepath C:\fc.txt -encoding ASCII -Append
    }
    else
    {
        write-output "ls $p_file_pattern" | out-file -filepath C:\fc.txt -encoding ASCII -Append
    }

    write-output quit | out-file -filepath C:\fc.txt -encoding ASCII -Append
}


###########################  Init Section ###############################
$yesterday = (get-date).AddDays(-1)
$yesterday_fmt = date $yesterday -format "yyyyMMdd"
$file_pattern = "BRAE_GE_*" + $yesterday_fmt + "*.csv"
$file_log = $yesterday_fmt + ".log"

echo  $file_pattern
echo  $file_log


############################## Main Section ############################
# Change location to folder where the files need to be downloaded
cd c:\remotefiles

# Dynamically create the FTP Command to get a list of files from
# the remote servers
echo "Call function that creates a FTP Command "
make_ftp_command_file $file_pattern N


#echo "Connect to remote site via FTP"
# Connect to Remote Server and get file listing
ftp -n -v -s:C:\Clover\scripts\fc.txt 10.129.120.31 > C:\logs\$file_log

$matches=select-string -pattern "BRAE_GE_[A-Z][A-Z]*" C:\logs\$file_log

# Check if the required number of Files available for download
if ($matches.count -eq 36)
{
    # Create the FTP command file

    # This time the command file has an mget rather than an ls
    make_ftp_command_file $file_pattern Y

    # Change directory if not done so
    cd c:\remotefiles

    # Invoke ftp with newly created command file
    ftp -n -v -s:C:\Clover\scripts\fc.txt 10.129.120.31 > C:\logs\$file_log
}
else
{
    echo "The full set of files is not available"
}
0
ответ дан Peter Mortensen 25 August 2018 в 06:39
поделиться

Вам нужно написать команды ftp в текстовом файле и указать его как параметр для команды ftp следующим образом:

ftp -s:filename

Дополнительная информация здесь: http: // www. nsftools.com/tips/MSFTP.htm

Я не уверен, хотя если бы он работал с именем пользователя и паролем.

42
ответ дан Simon East 25 August 2018 в 06:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: