2011-02-04 2 views
0

В SQL Я использую xp_cmdShell для запуска FTP-команд. У меня нет проблем с получением списка файлов или копированием файлов на локальный сервер, но я хочу сравнить скопированный размер файла с оригиналом, чтобы убедиться, что get был успешным.сравнить размер файла после получения ftp с исходным файлом на сервере

Любые идеи относительно того, как сравнивать размеры файлов?

ответ

1

Из командной строки вы можете использовать команду сравнения файлов DOS (fc). В вашем случае вы, вероятно, захотите выполнить двоичное сравнение (нет сравнения размера файла). Я бинарный анализ должен работать в вашем случае.

Большинство команд DOS вернут код, который позволит вам узнать статус.

http://www.computerhope.com/fchlp.htm

EDIT К сожалению, я прочитал ваш вопрос и понял, что вы хотите, чтобы сравнить ее с файла на сервере FTP. Я думаю, что это спорный вопрос, поскольку, если ftp сообщает об успешной передаче файла, нет никакой причины сравнивать (если только ваш источник сравнения не для ftp-сайта). Имеет ли это смысл?

Что вы можете сделать это, используя команду FTP ls.

ftp> ls <filename> 

где ftp> является приглашением ftp, а не частью команды. Эта команда дает вам размер файла в байтах. Затем вам нужно использовать команду dos для локального файла. Вот вопрос StackOverflow (и ответ) об этом. Windows command for file size only?

+0

+1 для ссылки Файл командной строки Windows Размер только, но ls не работает для меня, поскольку мне нужен только размер, и причина, по которой мне приходится сравнивать, это то, что я не уверен, что система закончил писать файл, когда я получаю файл – Asha

+0

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