что я делаю здесь не так, если у меня есть командный файл, вызывающий текстовый файл с приведенным ниже кодом, и мой ожидаемый результат - MyFile_20200804.zip - PullRequest
1 голос
/ 04 августа 2020
echo off
Set Today=%Date:~8,2%%Date:~5,2%%Date:~2,2%

option batch abort
option confirm off

open sftp://Username:Password@HostName -hostkey="my host key"
get MyFile_%Today%.zip  "E:\MyFolder\" 

Ожидаемый результат MyFile_20200804.zip

1 Ответ

0 голосов
/ 04 августа 2020

У меня не установлен WinScp, поэтому я не могу это проверить, но вам нужно создать файл ответов, назовем его myfile.txt, однако вам нужно создать переменную даты в файле, чтобы мы могли позволить пакету file создайте для вас текстовый файл:

@echo off
for /f "tokens=2 delims=.=" %%i in ('wmic os get localdatetime /value') do set result=%%i
(
  echo option batch abort
  echo option confirm off
  echo open sftp://Username:Password@HostName -hostkey="my host key"
  echo get "MyFile_%result:~0,8%.zip"  "E:\MyFolder\" 
  echo exit
)>myfile.txt
winscp.com /ini=nul /script=myfile.txt

Вы заметите, что я использовал wmic os get localdatetime вместо переменной c %date%, заданной для локали. Если у вас другие региональные настройки, ваш сценарий не сможет собрать файл с использованием %date% просто из-за различных доступных форматов даты.

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