Пакетный файл не будет копировать папку и файлы из пакетного каталога - PullRequest
0 голосов
/ 23 марта 2020

У меня есть командный файл с тремя вариантами выбора. Если я выберу A, он должен скопировать папку с именем Files (расположенную в том же каталоге root, что и пакетный файл) на root диска 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

-------------------------------------------------------------------------------
   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 Я думаю, что я пытался добавить backsla sh в конце %SystemDrive%, и это не имело никакого значения.

...