【发布时间】:2014-07-04 01:32:49
【问题描述】:
我在执行批处理文件时遇到问题,该批处理文件会将文件从映射的网络驱动器复制到本地驱动器。
这是我正在使用的批处理代码(目前它只是在一个低级文件夹中,因为我不想在生产环境中执行命令,直到我一切都完美为止)。
echo off
cls
echo Would you like to do a backup?
pause
copy "\\My_Servers_IP\Shared Drive\FolderName\*" C:TEST_BACKUP_FOLDER
pause
我也试过了:
echo off
cls
echo Would you like to do a backup?
pause
copy "\\My_Servers_Name\Shared Drive\FolderName\*" C:TEST_BACKUP_FOLDER
pause
当我请求时,上述命令都不会将文件复制到 C:TEST_BACKUP_FOLDER,但是如果我使用相同的确切语法但从本地驱动器发出复制请求,则此语法没有问题并继续直接进入上面的文件夹没有问题。
最奇怪的部分是 cmd 输出甚至显示我想要复制的文件甚至在命令行中被识别,最后它显示“1 个文件已复制”但没有任何内容复制到该文件夹。所以我知道我的复制请求目的地是正确的,因为它甚至可以识别文件夹中的哪些文件并且名称会显示出来。正如我所说的 C: 中的目的地也是正确的,因为当我在本地 PC 上使用该地址时,它们每次都会复制到该文件夹。这显然与网络驱动器有关。起初我认为这可能是一个权限问题,但我现在尝试的文件夹是一个共享映射驱动器,公司中的任何人都可以访问它并且具有 r/w 特权。为什么在公共共享驱动器上会出现这样的问题?
您能提供任何进一步的建议吗?
【问题讨论】:
-
如果您包含指向图像的链接,我们可以为您编辑它。
-
c:test_backup_folder是指向当前目录下的文件夹的相对路径,显然根据当前目录是副本的目标而有所不同。您是否尝试过使用绝对路径,例如c:\somewhere\test_backup_folder? -
大家好。多亏了好老的 Reddit,才弄明白。无需回复。谢谢:)
标签: batch-file scripting cmd copy