Пакетный файл не выполняет команды psftp - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь загрузить файл из моей локальной системы на FTP, который настроен на компьютере Linux с использованием T-SQL cmd.Я создал пакетный файл с командами для выполнения, который работает правильно в cmd, где он не работает в T-SQL, при вызове того же пакетного файла в SQL с помощью xp_CMDShell.Ниже приведены команды, которые я использовал.

Командный файл cmd:

cd C:\Program Files\PuTTY
psftp.exe
open FTPip
username
password
put D:\localpath\filename /home/destinationpath/filename
quit 

T-SQL:

EXEC master..xp_CMDShell 'D:\batchfilepath\batchfile.bat'

Ответ T-SQL:

C: \ Windows \ system32> cd C: \ Program Files \ PuTTY NULL C: \ Program Files \ PuTTY> psftp.exe psftp: имя хоста не указано;используйте «open host.name» для подключения psftp> quit NULL C: \ Program Files \ PuTTY> open ftpip «open» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.NULL C: \ Program Files \ PuTTY> имя пользователя 'username' не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.NULL C: \ Program Files \ PuTTY> пароль 'пароль' не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.NULL C: \ Program Files \ PuTTY> quit
'quit' не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.NULL

Пожалуйста, дайте мне знать, где мне не хватает.

1 Ответ

0 голосов
/ 29 января 2019

Вы объединяете команды psftp и команды Windows в один файл.Это не может работать.Пакетный файл останавливается при вызове на psftp и ожидает его завершения.psftp напротив, не знает, что пакетный файл даже существует, поэтому он не может читать свои команды оттуда.

Поместите ваши psftp команды (строки open хотя quit) в отдельныйфайл (upload.txt) и выполните его с помощью следующей команды:

"C:\Program Files\PuTTY\psftp.exe -b c:\path\to\upload.txt

(вы можете выполнить эту команду непосредственно из T-SQL или поместить ее в свой пакетный файл)


Обратите внимание, что ваш пакетный файл также не может работать с cmd, в отличие от того, что вы заявляете в своем вопросе.Вы, вероятно, имели в виду, что ввод этих строк в cmd работает вручную, что-то еще.

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