У меня есть пакетный скрипт Windows, который циклически перемещается по всем файлам в папке и загружается на ftp, а затем удаляет локальный файл. Это прекрасно работает, когда нет пробелов в имени файла:Windows Batch Удалить Локальный файл после загрузки
@for %%f in (D:\local\file\path\nospaces\*.jpg) do (
@echo cd /remote/file/path/nospaces/ && @echo put %%f && @echo !del %%f
)>> %SCRIPT_NAME%
Когда пространства введены, я в состоянии получить файл для загрузки с помощью кавычки вокруг пути, но местные не будет удалять:
@for %%f in ("D:\local directory with spaces\*.jpg") do (
@echo cd "/remote directory with spaces/" && @echo put "%%f" && @echo !del "%%f"
)>> %SCRIPT_NAME%
Может кто-нибудь указать мне в правильном направлении?
Спасибо!
Я должен также заявить об ошибке я получаю: «система не может найти указанный файл» – jgcc2016
Вы можете проверить результат ftp.exe и удалить его следующей строкой в цикле, как описано здесь: http://stackoverflow.com/a/18579970/5920627 – kay27
В вашем втором примере, попробуйте с '" %% ~ f "', а не '" %% f "' (дважды) ... – aschipfl