2017-01-26 9 views
0

я написал ниже команду: FTPFTP файл с новым именем, которые имеют префикс формата ГГГГММДД_ЧЧММСС

open server.com 
username 
password 

cd destination_path\ 

put \\source_path\test.txt 

rename test.txt test_success_%date:~4,2%.%date:~7,2%.%date:~_2%.%time:~0,2%_%time:~3,2%_%time:~6,2%.txt 

quit 

Rename является успешным, но с именем test_success_%date:~4,2%.%date:~7,2%.%date:~_2%.%time:~0,2%_%time:~3,2%_%time:~6,2%.txt

не нравится test_success_20170126_022545.txt (что я хочу).

Пожалуйста, помогите мне в этом. Заранее спасибо.

ответ

0

Просто попробуйте с этим:

rename test.txt 
test_success_%date:~6,4%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt 

Мой результат был: test_success_20170126_100649.txt
Примечание: Запишите это в одной строке, я вырезал его здесь в две строки для лучшего обзора.

+0

Я не sure..My результат дата test_success_%: ~ 6,4 %% дата: ~ 3,2% % дата: ~ 0,2% _% время: ~ 0,2 %% время: ~ 3,2 %% время: ~ 6,2% .txt только. Правильный результат придет в cmd, когда нет подключения ftp ... – Sesha

0

Похоже, что интерпретатор ftp не обрабатывает%. Обычно я пишу команды ftp в файл, а затем запускаю его.

SET "FTPFILE=%TEMP%\myscript.tmp" 

ECHO>"%FTPFILE%" open server.com 
ECHO>>"%FTPFILE%" username 
ECHO>>"%FTPFILE%" password 
ECHO>>"%FTPFILE%" cd destination_path\ 
ECHO>>"%FTPFILE%" put \\source_path\test.txt 
ECHO>>"%FTPFILE%" rename test.txt test_success_%date:~4,2%.%date:~7,2%.%date:~_2%.%time:~0,2%_%time:~3,2%_%time:~6,2%.txt 
ECHO>>"%FTPFILE%" quit 

ftp -n -s:"%FTPFILE%" 
+0

Над кодом работает отлично в cmd ... К сожалению, моя работа позволяет команду в ftp.exe Так что выше код не подходит для моего приложения. Есть ли другой способ сделать .. – Sesha

0

код вы показать, как представляется, ftp сессии, но не сеанс cmd. Переменная расширения % специфична для cmd, но не для ftp, поэтому ваш код не может работать.

Я хотел бы использовать имя фиксированного временного файла в сеансе ftp и сделать переименовывать позже в cmd сессии:

ftp сессия:

open server.com 
username 
password 

cd destination_path\ 

put \\source_path\test.txt 

quit 

cmd сессия:

rename "destination_path\test.txt" "test_success_%date:~4,2%.%date:~7,2%.%date:~-2%.%time:~0,2%_%time:~3,2%_%time:~6,2%.txt" 

Кстати, есть опечатка: вы заявили %date:~_2%, а не %date:~-2% ...

+0

После завершения моего приложения закрывается. после этого не будет сеанса cmd. – Sesha

+0

Тогда вы можете открыть 'cmd'. Как вы запускаете 'ftp'? – aschipfl

+0

наш пакет ssis выполняет ftp.exe, и команда берется из файла конфигурации. Таким образом, мы можем использовать тот же пакет с только новой командой в файле конфигурации. Так что мы просто хотим сделать с тем же пакетом с добавленными командами. – Sesha