我有一个Windows批处理脚本,它遍历文件夹中的所有文件并上传到ftp,然后删除本地文件。当文件名中没有空格时,这很有用:
@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%
有人能指出我正确的方向吗?
谢谢!
答案 0 :(得分:0)
@for %%f in ("D:\local directory with spaces\*.jpg") do (
@echo cd "/remote directory with spaces/" && @echo put "%%f" && @echo !echo "%%f">log.txt
)>> %SCRIPT_NAME%
ftp.exe -s:%SCRIPT_NAME%
for /f "delims=" %%f in (log.txt) do del /q "%%f"
del /q log.txt
答案 1 :(得分:0)
这是我结束的地方:
@for %% f in(" D:\ local directory with spaces * .jpg")do( @echo cd" /带空格的远程目录/" &安培;&安培; @echo put" %% f" &安培;&安培; @echo %% f>> log.txt)>> %SCRIPT_NAME%
@echo quit>> %SCRIPT_NAME%
@REM =现在使用我们生成的脚本调用FTP @ftp -s:%SCRIPT_NAME%
@REM =删除我们的临时脚本文件,我们就完成了 @del%SCRIPT_NAME%/ q
for / f" delims =" %% f in(log.txt)do del / q" %% f"
del / q log.txt