【问题标题】:How to copy a file from a USB drive to C drive in Windows 10 using a batch file?如何使用批处理文件将文件从 USB 驱动器复制到 Windows 10 中的 C 驱动器?
【发布时间】:2019-09-26 22:11:21
【问题描述】:

我的 USB 驱动器中有一些文件需要复制到多台计算机。这些文件包含将使用其他配置文件的可执行文件。 我的问题是,对于 Windows 10 PC,在创建 temp_folder 时,没有任何文件被复制。

对于 Windows 7,我能够创建一个批处理文件,将文件复制到本地驱动器并使用配置文件运行可执行文件。

批处理文件内容如下:

mkdir C:\temp_installer
copy ".\file_name" "C:\temp_installer"
<rest of the code>

我尝试过使用 xcopy 和 robocopy,但仍然看到批处理文件运行,并在创建文件夹时停止。在 Windows 7 中未观察到相同的问题。

有人试过这个吗,或者有人能告诉我我可能做错了什么吗?

【问题讨论】:

  • 你在哪里运行脚本? ".\file_name" 是一个相对路径。您在复制的同一目录中创建“temp_installer”,并且可能您的文件被复制到名为“C:\temp_installer”的文件(而不是目录)
  • 您是否直接从 USB 运行此脚本?似乎您是从 USB 本身运行它,如果是这种情况,它也不会在 Windows 7 上运行,因为您 mkdir 在实际的 USB 上。无论如何都会发布解决方案作为答案。
  • 使用XCopy 或其后继RoboCopy 之一,您可以在一个命令中复制和创建目录。 当然建议您尝试在具有足够权限的位置(Windows 提供系统和用户临时目录)执行此操作。
  • 抱歉,我需要更正问题中的代码。运行mkdir命令创建C盘目录

标签: windows batch-file copy-paste usb-drive


【解决方案1】:

这将是一个更好的选择,我们不需要担心C:根的权限问题

@echo off
cd /d "%~dp0"
set "inst_dir=%temp%\temp_installer"
mkdir "%inst_dir%">nul 2>&1
for %%i in (*) do if not "%%i"=="%~nx0" copy /Y "%%i "%inst_dir%"
:# When completed, we can call execute the files from "%inst_dir%"

for 循环不需要老实说,我只是为了.bat/.cmd 文件本身复制到文件夹中,因为不需要它在那里。

或者更简单,无需执行上述所有操作,您可以使用robocopy

@echo off
cd /d "%~dp0"
robocopy /MIR .\ "%temp%\temp_installer"

【讨论】:

  • 谢谢,虽然这可行,但我现在遇到了一个奇怪的问题。当我双击批处理文件时,一切都按预期复制。但是,当我以管理员身份运行时,robocopy 开始将我的整个 windows 目录复制到新创建的文件夹中。不知道为什么会这样。
  • 以管理员身份运行时您的工作目录会发生变化。
  • 酷,如果你想知道为什么要创建一个新批次并添加 echo %cd% 然后下一行 echo %~dp0 和最后一行 pause。然后以管理员身份运行它以查看结果以及我们为什么这样做cd /d %~dp0。然后,您可以打开 cmd.exe 并运行 call /? 以了解有关替换批处理参数的所有信息。 :) 祝你的项目好运。
【解决方案2】:

Powershell 是你的朋友,试试这个:

Copy-Item E:\Document\ C:\Temp\Document\ -R

非常适合我,它甚至可以创建目标目录,Copy-Item 也有 alias cpcopy

如果您运行某种脚本,您可能会遇到Execution-Policy 的问题:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-6

【讨论】:

    猜你喜欢
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 2016-08-13
    • 2016-12-28
    相关资源
    最近更新 更多