【问题标题】:Using a batch to copy from network drive to C: or D: drive使用批处理从网络驱动器复制到 C: 或 D: 驱动器
【发布时间】: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


【解决方案1】:

最重要的是你需要安装驱动器

net use z: \\yourserver\sharename

当然,您需要确保运行批处理文件的帐户有权访问共享。如果您使用计划任务执行此操作,则可以通过选择任务来选择帐户,然后:

  • 右键单击属性
  • 点击常规标签
  • 下更改帐户

“运行任务时,请使用以下用户帐户:” 这是在 Windows 7 上,在不同版本的 Windows 上可能略有不同。

然后运行带有以下更改的批处理脚本

copy "z:\FolderName" "C:\TEST_BACKUP_FOLDER"

【讨论】:

    【解决方案2】:

    只需进行以下更改

    echo off
    cls
    
    echo Would you like to do a backup?
    
    pause
    
    copy "\\My_Servers_IP\Shared Drive\FolderName\*" C:\TEST_BACKUP_FOLDER
    
    pause
    

    【讨论】:

      【解决方案3】:

      您正在将所有文件复制到一个名为 TEST_BACKUP_FOLDER 的文件中

      试试这个:

      md TEST_BACKUP_FOLDER
      copy "\\My_Servers_IP\Shared Drive\FolderName\*" TEST_BACKUP_FOLDER
      

      【讨论】:

      • 多亏了 Reddit 的优秀人员,我才弄明白了。我使用的语法是: xcopy "\\My_Server_IP\SharedDrive\Folder*" "C:\Test_Folder" /D /E /C /I /H /Y
      • 你的问题没有提到递归复制,当你不提供准确的细节时,为什么你会期望得到一个可行的解决方案?
      【解决方案4】:

      这可能是由于安全检查。 This thread 可能会对你有所帮助。

      有两种建议:一种使用 pushd,另一种使用注册表更改。我建议使用第一个...

      【讨论】:

        猜你喜欢
        • 2017-07-19
        • 2021-12-21
        • 2021-02-23
        • 1970-01-01
        • 2019-09-26
        • 1970-01-01
        • 1970-01-01
        • 2018-04-17
        • 1970-01-01
        相关资源
        最近更新 更多