AbandonSocios: El Portal de los Juegos Antiguos

Abandonsocios => Dudas y Problemas Técnicos => Mensaje iniciado por: cireja en Noviembre 21, 2017, 13:24:21 pm

Título: Acceso denegado al usar COPY en un bat con Win10
Publicado por: cireja en Noviembre 21, 2017, 13:24:21 pm
Quisiera saber si alguin sabe cuál es el truco para que el comando COPY haga su función dentro de un bat, si el destino final es %PROGRAMFILES% (x86), sin que el sistema lance el mensaje de "Acceso denegado". Antes con WinXP no había problema, pero con los dichosos permisos no consigo hacerlo.

Ejemplo del bat:

Código: [Seleccionar]
@echo off
ECHO Copiando Archivo.ini . . .
COPY "Archivo.ini" "%PROGRAMFILES% (x86)\ProgramaEjemplo\Archivo.ini"
ECHO.
ECHO Archivo.ini copiado con exito
pause
EXIT
Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: Guardiola en Noviembre 21, 2017, 15:19:38 pm
no será cuestion de ejecutar ese BAT como admin ?
Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: xblastoise99 en Noviembre 21, 2017, 15:33:34 pm
Cireja, el acceso denegado es por que estas intentando ejecutar un archivo que esta ubicado en una carpeta protegida por el sistema. Hace como dice guardiola, click derecho y ejecutalo como administrador. Con eso deberia funcionar. ;)

Saludos!

Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: cireja en Noviembre 21, 2017, 17:57:09 pm
No es eso, hombre. Eso es lo primero que probé.
Responded quien sepa algo de verdad sobre esto, u os baneo un mes.

:wacko:
Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: Kendo en Noviembre 21, 2017, 19:21:04 pm
si no puedes entrar facilmente y tienes el acceso denegado, es que no es un simple bat...
















...sino BAT-CUEVA!

(https://1.bp.blogspot.com/-YkIjspdB7ZI/U7YWFpY8anI/AAAAAAAAEQg/4cgRONcURAI/s1600/Batman-Begins-GIF-20.gif)
Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: Monthy en Noviembre 21, 2017, 20:53:46 pm
He probado y funciona sin problemas, ejecutándolo como admin claro.

Tendrás un BATiburrillo de permisos.




Lo sé, me estoy ganando un baneo jeje.
Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: cireja en Noviembre 21, 2017, 22:52:05 pm
Vale, he conseguido que funcione pero poniendo la ruta absoluta del archivo origen, cosa que no me sirve para nada de esa forma, necesito poner el origen con ruta relativa.

Así funciona:
Código: [Seleccionar]
COPY "%USERPROFILE%\Documents\Prueba.ini" "%PROGRAMFILES% (x86)\Prueba\Prueba.ini"
Así no funciona y lanza un mensaje de "El sistema no puede encontrar el archivo especificado."
Código: [Seleccionar]
COPY ".\Prueba.ini" "%PROGRAMFILES% (x86)\Prueba\Prueba.ini"
¿Alguna idea más para no tener que usar una ruta absoluta? ¿Y de cómo hacer que se haga el COPY en modo admin?
Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: pelonariz en Noviembre 21, 2017, 23:31:57 pm
Prueba esto:

COPY Prueba.ini "%PROGRAMFILES% (x86)\Prueba\"

Suponiendo que el bat este situado en "%USERPROFILE%\Documents\". Si no, tienes que especificar las ruta completa de Prueba.ini

Si Prueba no tiene espacios, no son necesarias las comillas. Si Prueba.ini tiene el mismo nombre en el destino, no es necesario especificarlo.

Si no me equivoco, para escribir en la carpeta "Archivos de Programa" no es necesario tener permisos de administrador.
Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: cireja en Noviembre 22, 2017, 00:04:00 am
No funciona. Solo consigo hacerlo funcionar con la ruta absoluta del archivo origen, y eso, pues como que no me sirve.
Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: raulpuro en Noviembre 22, 2017, 02:08:05 am
Buenas,

     Pues no se chico yo tengo win 7 64 he hecho lo mismo que tu y me funciona perfectamente, me parece muy raro el mensaje, a mi me pasa eso muchas veces pero cuando tengo el archivo pillado o abierto con otro programa.

    He puesto esto y en mi equipo funciona.

COPY "%PROGRAMFILES% (x86)/ProgramaEjemplo/Archivo.ini" "%PROGRAMFILES% (x86)/ProgramaEjemplo2/"

Cosas de Windows.

Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: RodrigoH17 en Noviembre 22, 2017, 02:20:36 am
Creo que lo que quiere cireja es no poner la ruta completa donde se encuentra el archivo a copiar.
Para hacer eso (como puso pelonariz), el BAT y el archivo a copiar tienen que estar juntos, en la misma carpeta.

Haciendo eso tiene que si o si funcionar, ya que el comando COPY es una funcion heredada del DOS y funciona en todos los Windows por igual, salvo que el error sea por una causa ajena al comando COPY.
Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: bbypka en Noviembre 22, 2017, 02:37:54 am
Has probado a meter el archivo en una carpeta y copiar con xcopy? , Si la carpeta destino no es aleatoria podría funcionar, ojo, no tengo win10, usó win7 y tú código en win7 (tal como han dicho) funciona bien.
Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: Kendo en Noviembre 22, 2017, 02:52:49 am
si te deja MOVERLO de carpeta es porque es un...?




(http://cdn.playbuzz.com/cdn/1a4c0da3-136a-45ca-88a0-3cf9b08c9596/406f863e-17d5-45fa-89cb-5c9eb8520785.gif)

vale vale pare, lo dejo estar... perdoname es que estoy un poco saturao con la faena estos días y me se va.

¿puedo sugerirte seriamente que intentes hacerlo en otro SO o sea directamente en otra máquina a ver que pasa?
Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: SenhorX en Noviembre 22, 2017, 03:04:12 am
Para usar rutas relativas en un bat se usa la variable %~dp0 (esta devuelve la ruta desde donde estes ejecutando el bat incluyendo la \ del final) Te quedaría algo asi:

Código: [Seleccionar]
@echo off
ECHO Copiando Archivo.ini .

SET mypath=%~dp0

COPY "%mypath%archivo.ini" "%PROGRAMFILES(x86)%\ProgramaEjemplo\Archivo.ini"
ECHO.
ECHO Archivo.ini copiado con exito
pause
EXIT

Yo lo he probado en Windows 10 x64 ejecutando como administrador y te aseguro que funciona. Ya me contarás :-)

EDITO:

Para ejecutar un bat con privilegios de administrador encontre este codigo:

Código: [Seleccionar]
:::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Automatically check & get admin rights V2 ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
CLS
ECHO.
ECHO =============================
ECHO Running Admin shell
ECHO =============================

:init
setlocal DisableDelayedExpansion
set "batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
setlocal EnableDelayedExpansion

:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )

:getPrivileges
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
ECHO.
ECHO **************************************
ECHO Invoking UAC for Privilege Escalation
ECHO **************************************

ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
ECHO args = "ELEV " >> "%vbsGetPrivileges%"
ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
ECHO args = args ^& strArg ^& " "  >> "%vbsGetPrivileges%"
ECHO Next >> "%vbsGetPrivileges%"
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
exit /B

:gotPrivileges
setlocal & pushd .
cd /d %~dp0
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul  &  shift /1)

::::::::::::::::::::::::::::
::START
::::::::::::::::::::::::::::
REM Run shell as admin (example) - put here code as you like

ECHO Copiando Archivo.ini .

SET mypath=%~dp0

COPY "%mypath%archivo.ini" "%PROGRAMFILES(x86)%\ProgramaEjemplo\Archivo.ini"
ECHO.
ECHO Archivo.ini copiado con exito
pause
EXIT

cmd /k

Entre la parte que dice "REM Run shell as admin (example) - put here code as you like" y la ultima instruccion "cmd /k" pones el codigo de tu bat.

Con esto y un simple doble clic en el .bat se ejecuta como administrador ;)
Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: cireja en Noviembre 22, 2017, 12:44:26 pm
SenhorX, ahora sí. Con esa variable hace exactamente lo que necesito. Muchas gracias.

A los que habéis escrito chorrás y pruebas al tuntún sin haberlas probado antes, os banearé un mes por guarrear el hilo, jiji :wacko:

SenhorX, bienvenido al foro y gracias de nuevo.
Título: Re:Acceso denegado al usar COPY en un bat con Win10
Publicado por: RodrigoH17 en Noviembre 22, 2017, 13:21:53 pm
Lo acabo de probar y tambien me funciona de esa manera (con la opcion "SET mypath=%~dp0"), pero tambien funciona de la manera tradicional:

Sigue el misterio de porque asi no te funciona:

Código: [Seleccionar]
COPY "Archivo.ini" "%PROGRAMFILES(x86)%\Archivo.ini"