【问题标题】:Cannot Copy a File Using Batch无法使用批处理复制文件
【发布时间】:2016-09-10 03:29:52
【问题描述】:

我正在尝试使用批处理文件复制一些文件。

这不起作用:

@echo off
for /R "C:\Users\User\Documents\Folder FolderA FolderB\Folder\Folder FolderC FolderD\Folder\Folder" %%f in (*.inc) do copy %%f /R "\\10.1.10.156\c\Folder1\Folder 2\Folder3"

这行得通:

@echo off
for /R "C:\Users\User\Documents" %%f in (*.inc) do copy %%f "\\10.1.10.156\c\Folder1\Folder 2\Folder3"

我还用%cd% 替换了"C:\Users\User\Documents\Folder FolderA FolderB\Folder\Folder FolderC FolderD\Folder\Folder",我收到一个错误提示FolderA was unexpected at this time,所以我觉得这与名为Folder FolderA FolderB 的文件夹中的空格有关,但我无法让它工作。

【问题讨论】:

  • 你可以试试do copy "%%f" ...

标签: windows batch-file copy


【解决方案1】:

首先,您的副本声明中有一个不应该存在的/R

其次,正如@Dennis van Gils 所建议的,您需要在copy 语句中的%%f 变量周围加上引号。原因如下:

在这个命令中:

for /R "C:\a folder with\spaces\" %%f in (*.inc) do copy %%f "\\destination\folder"

变量%%f 扩展为C:\a folder with\spaces\filename.inc。因此,当copy 尝试使用它时,它会看到:

copy C:\a folder

--然后它会窒息,因为C:\a 不是有效的来源,folder 不是有效的目的地。所以,如果你像这样在变量周围加上引号:

rem ---------------------quotes around this variable-----VVVVV
for /R "C:\a folder with\spaces\" %%f in (*.inc) do copy "%%f"  "\\destination\folder"

它将扩展为:

copy "C:\a folder with\spaces\filename.inc" "\\destination\folder"

并且应该按照您的预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    相关资源
    最近更新 更多