Windows批量上载后删除本地文件

时间:2016-04-27 16:17:21

标签: windows batch-file

我有一个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%

有人能指出我正确的方向吗?

谢谢!

2 个答案:

答案 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