Я пишу приложение, которое использует командный файл для копирования некоторых файлов в другое место. Я использую 64-разрядные окна 7.Копирование файла из локальной папки в папку «C: Windows System32 » с использованием командного файла
Я попросил права администратора тоже используя код ниже:
код блока, чтобы получить ADMIN право:
@echo off
:: BatchGotAdmin (Run as Admin code starts)
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
)
else (goto gotAdmin)
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" (del "%temp%\getadmin.vbs")
pushd "%CD%"
CD /D "%~dp0"
:: BatchGotAdmin (Run as Admin code ends)
:: Your codes should start from the following line
код, чтобы скопировать файл в папке system32:
copy /d /Y "D:\opt\optPath.txt" "C:\Windows\System32\"
Там нет ошибки в операции копирования, но е ile скопирован в "C: \ Windows \ SysWOW64" автоматически. Нужна помощь.
Вы запускаете 'команду copy' с командным интерпретатором 32-битной, и в связи с [WoW64] (https: // MSDN .microsoft.com/en-us/library/windows/desktop/aa384187 (v = vs.85) .aspx), он заканчивается в текущем местоположении. Как вы его начинаете? – CristiFati
Вы используете 32-битную программу - это 32-битный каталог System32. 'C: \ Windows \ SysNative' позволяет 32-битным программам обращаться к 64-битной системе32. Windows использует 64-битные программы, если вы ничего не сделали. Поместите «cmd/c copy/d/y» D: \ opt \ optPath.txt «C: \ Windows \ SysNative \ *. *" В ярлык, а затем установите его как «Запуск от имени администратора» (щелкните правой кнопкой мыши - «Свойства» - ярлык tab - кнопка «Дополнительно» и отметьте «Запуск от имени администратора» или скопируйте файл в vbscript «CreateObject» («Scripting.FileSystemObject»). CopyFile «D: \ opt \ optPath.txt», «C: \ Windows \ SysNative \ optPath.txt» , True' –
@Alex. Пакетные файлы уже 64 бит, если вы не делаете что-то странное. –