批处理文件 - 复制带有空格的目录

批处理文件 - 复制带有空格的目录

目标

我想要:

1 - 循环遍历远程网络上的目录并在本地创建一个目录(如果不存在)

2 - 在远程文件的子目录中,将文件复制到本地文件夹上的同名目录,然后删除远程目录上的源文件。

3 - 在某个时候将其设置为通过窗口调度程序每天运行

问题 我的代码(见下文)可以完成我想要它做的所有事情,除了如果子目录中有空格,它会循环遍历每个单词并为其创建一个新文件夹。例如,如果有一个名为“Docs and Notes”的文件夹,它将为以下内容创建文件夹:

- Docs and Notes
- Docs
- and
- Notes

我目前拥有的

FOR /R "Z:\REMOTE_DIR" %%F IN (.) DO (
  Pushd %%F

  if exist C:\Users\Jane.Doe\LOCAL\%%~nxF\NUL echo "Folder already exists"
  if not exist C:\Users\Jane.Doe\LOCAL\%%~nxF\NUL mkdir C:\Users\Jane.Doe\LOCAL\%%~nxF

  cd C:\Users\Jane.Doe\LOCAL\%%~nxF
  FOR %%G IN (.) DO (
    robocopy %%G C:\Users\Jane.Doe\LOCAL\%%~nxF /MOV /s /xn
  ) 

  Popd
)

有什么想法可以防止这种情况发生吗?谢谢!

相关内容