批处理文件不会从批处理目录复制文件夹和文件

时间:2020-03-23 00:26:51

标签: windows batch-file copy robocopy system-variable

我有一个带有三个选择选项的批处理文件。如果选择A,则应该将一个名为Files的文件夹(与批处理文件位于同一根目录中)复制到C:\驱动器的根目录中。我似乎无法理解为什么%SystemDrive%变量不起作用并想指向C:\Windows\system32

有什么想法吗?

run.bat

@echo off
set /a _Debug=0
::==========================================
:: Get Administrator Rights
set _Args=%*
if "%~1" NEQ "" (
  set _Args=%_Args:"=%
)
fltmc 1>nul 2>nul || (
  cd /d "%~dp0"
  cmd /u /c echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~dp0"" && ""%~dpnx0"" ""%_Args%""", "", "runas", 1 > "%temp%\GetAdmin.vbs"
  "%temp%\GetAdmin.vbs"
  del /f /q "%temp%\GetAdmin.vbs" 1>nul 2>nul
  exit
)

@ECHO OFF
TITLE WINDOWS AUTOMATION UTILITY
COLOR 02
CLS
ECHO.
ECHO THIS UTILITY HELPS AUTOMATE WINDOWS 10
ECHO ======================================
ECHO.
:MENU
ECHO  [A]   Copy 'Files' directory from installation media to System Drive
ECHO  [B]   Set default Start menu for all users
ECHO  [C]   EXIT Remove bloatware apps from Windows 10

choice /C ABC /M "Select Mode:" /N
IF %ERRORLEVEL% EQU 3 goto End
IF %ERRORLEVEL% EQU 2 goto B
IF %ERRORLEVEL% EQU 1 goto A

::
:B
CLS
ECHO THIS IS B
TIMEOUT 2 >nul
CLS
GOTO MENU

::
:A
CLS
ECHO THIS IS A
TIMEOUT 2 >nul
CLS
ROBOCOPY "%~dp0Files" %SystemDrive% /MT
GOTO MENU

::
:End
CLS
ECHO You've reached the end
PAUSE
EXIT 0

自动复制结果

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows
-------------------------------------------------------------------------------

  Started : 23 March 2020 00:15:09
   Source : D:\Users\Will\Documents\IT Projects\Windows\Windows 10 Image\Files\
     Dest : C:\Windows\system32\

    Files : *.*

  Options : *.* /DCOPY:DA /COPY:DAT /MT:8 /R:1000000 /W:30

------------------------------------------------------------------------------

更新

@ Durry42 在命令提示符中键入Set会返回C:\

@aschipfl 我想我尝试在%SystemDrive%的末尾添加反斜杠,但没有区别。

0 个答案:

没有答案