|
1851
|
Programación / Programación General / Re: ayuda programacion batch: uso del for /f
|
en: 4 Abril 2019, 20:42 pm
|
- Porque el ERRORLEVEL que trabaja en la sentencia IF es un poco diferente: IF ERRORLEVEL 0 => Significa Si el ERRORLEVEL es 0 o mayor IF ERRORLEVEL 1 => Significa Si el ERRORLEVEL es 1 o mayor IF NOT ERRORLEVEL 0 => Significa Si el ERRORLEVEL es menor que 0 IF NOT ERRORLEVEL 1 => Significa Si el ERRORLEVEL menor que 1 - Por esto, en la documentación de ERRORLEVEL https://ss64.com/nt/errorlevel.html comentan que podría ser más humano usar la variable %ERRORLEVEL% en lugar de ERRORLEVEL puro y duro: IF %ERRORLEVEL% EQU 0 => Significa Si el ERRORLEVEL es 0 IF %ERRORLEVEL% GTR 0 => Significa Si el ERRORLEVEL mayor que 0 -- PERO hay que tener cuidado cuando se usa EnableDelayedExpansion porque hay que poner !ERRORLEVEL! en lugar de %ERRORLEVEL% https://ss64.com/nt/delayedexpansion.html
|
|
|
1852
|
Programación / Programación General / Re: ayuda programacion batch: uso del for /f
|
en: 4 Abril 2019, 16:46 pm
|
- && comando y || comando también usan ERRORLEVEL, el primero ejecuta comando si ERRORLEVEL es 0 (todo correcto), el segundo ejecuta comando si ERRORLEVEL es 1 o más (algo no salió bien, o no encontró lo que se buscaba ...) - No sé si hayan tocado el tema de ficheros Batch con parámetros: saludar.bat pepe luego el batch imprime: ECHO Hola %1, que es: Hola pepe -- Pues CALL hace prácticamente lo mismo, en este caso llama a una etiqueta y le pasa parámetros: CALL:imrpimir %%a %%b %%c luego en la etiqueta se usan los parámetros dados con la sintáxis %1 %2 %3 -- Otra cosa a tener en cuenta es que cuando se usa CALL, una vez finalizadas las intrucciones de la etiqueta, en este caso imprimir que finaliza con un GOTO:EOF, automáticamente "se regresa" a la siguiente instrucción que viene luego de llamar a CALL, vamos es como llamar a un ECHO hola, imprime el hola y continúa el programa, lo mismo con el CALL, ejecuta el CALL y continúa el programa. - Te recomiendo ver la siguiente referencia de comandos completa, está en inglés: https://ss64.com/nt/call.htmlhttps://ss64.com/nt/errorlevel.htmlhttps://ss64.com/nt/find.htmlhttps://ss64.com/nt/syntax-args.html... - Si tu profesor te ha dado documentación o ejercicios haber si los puedes compartir  , ya que no muy normal que enseñen batch a nivel programación, siempre he visto que enseñan a nivel comandos básicos de consulta y búsqueda: dir, find, md, attrib, etc.
|
|
|
1853
|
Sistemas Operativos / GNU/Linux / Re: Borrar archivos con una extensión común recursivamente
|
en: 4 Abril 2019, 06:01 am
|
- Pues has la prueba, crea varias carpetas con varios ficheros y ejecuta tu mágico comando. - Lo cierto es que el rm de Linux no es tan automágico como el del de Windows, rm no es recursivo en realidad, rm por defecto solo elimina ficheros y no carpetas, su -r sirve para eliminar carpetas y es todo. Pasa lo mismo con ls, no es como dir ... pero se complementa con grep y resulta muy poderoso. - SIN embargo como todo comando Linux se pueden pasar redireccionadores para pasarle una lista de ficheros a eliminar, esto mediante un comando como find y xargs: find -name "*.o" | xargs rm
- Otra opción es llevar la carpeta a un Windows y pasarle lo siguiente 
-- Jeje, supongo que alguien que se maneje mejor con Linux tenga una solución más sencilla  - En todo caso recomiendo que hagas una copia y trabajar en la copia, primero haciendo un listado con: find -name "*.o"
-- o si has decidido Windows:
- Luego eliminas y vuelves a listar para que veas como a salido todo
|
|
|
1854
|
Programación / Programación General / Re: ayuda programacion batch: uso del for /f
|
en: 4 Abril 2019, 04:36 am
|
-  , ya me había hecho ilusiones con printf, pero veo que mi windows 8 no lo trae. Supongo que srWhiteSkull se refiere a Linux-Bash. - En windows yo estaba planteándome el siguiente FOR: FOR /F "tokens=1,2,3 delims=:" %%a IN (agenda.txt ) DO ( ) )
-- Pero veo que el FOR de srWhiteSkull es más eficiente al matar varios pájaros de un solo tiro, aunque puede ser más complicado agregar más instrucciones según convenga, como validaciones, bifurcaciones, etc. -- Mi implementación final sería: REM ejercicio 9 :menu CLS ECHO ------------------------- ECHO - BUSQUEDA DE REGISTROS - ECHO ------------------------- SET /P opt="Selecciona una opcion: " :opt1 SET /P "patron=Buscar por campo Nombre: " FOR /F "tokens=1,2,3 delims=:" %%a IN (agenda.txt ) DO ( ECHO %%a | FIND /I " %patron%" >nul && CALL : imprimir %%a %%b %%c ) :opt2 SET /P "patron=Buscar por campo Apellido: " FOR /F "tokens=1,2,3 delims=:" %%a IN (agenda.txt ) DO ( ECHO %%b | FIND /I " %patron%" >nul && CALL : imprimir %%a %%b %%c ) :opt3 SET /P "patron=Buscar por campo Telefono: " FOR /F "tokens=1,2,3 delims=:" %%a IN (agenda.txt ) DO ( ECHO %%c | FIND /I " %patron%" >nul && CALL : imprimir %%a %%b %%c ) :opt4 :imprimir ECHO -------------------- ECHO -------------------- :reiniciar IF NOT " %encontrado%"=="SI" ECHO No se han encontrado ocurrencias
|
|
|
1855
|
Programación / Bases de Datos / Re: Como hacer un respaldo de sql2008r2 compatible con sql2005
|
en: 3 Abril 2019, 17:33 pm
|
Saludos, - Vaya, SQL Server 2005 es bastante viejo XD, dependerá de la estructura de la Base de Datos, más que nada de los Tipos de Datos, por ejemplo el Tipo Date no existe en SQL Server 2005 pero sí en SQL Server 2008 y superiores. - Lo más compatible son los Scripts .SQL, estos se pueden generar y sirven como un BackUp: =============================================================================== BackUp de Base de Datos vía Generar Scripts =============================================================================== Seleccionar la Base de Datos > Click derecho > Tareas > Generar scripts... [Introducción] Siguiente [Elegir objetos] Siguiente [Establecer opciones de scripting] Avanzadas [General] Script para el tipo de motor e base de datos > (Seleccionar versión destino) [General] Tipos de datos que se deben incluir en el script] > (Seleccionar Esquema y datos) Aceptar Siguiente > Siguiente > Finalizar - Luego ese fichero generado .sql se puede abrir en SQL Server 2005 y ejecutarlo para re-crear la base de datos - Si te presenta algún problema al generar el script es que hay instrucciones no compatibles, SQL Server es bastante descriptivo al mostrar los errores, entonces si obtienes errores hay que modificar la estructura de la base de datos. -- Lo conveniente es ir escalando de versión, por ejemplo elegir como destino SQL Server 2008 y generar el script, luego editar ese script generado para que sea compatible.
|
|
|
1856
|
Programación / Desarrollo Web / Re: [Pregunta]: Usar 2 veces "INNER JOIN" en una consulta
|
en: 3 Abril 2019, 14:00 pm
|
Saludos,
- INNER JOIN es para consultar datos en dos o más tablas, la primera tabla se especifica en el FROM, las siguientes en el INNER JOIN.
-- Si solo vas a consultar dos tablas te basta con un INNER JOIN, si tienes tres tablas necesitas dos INNER JOIN y así sucesuvamente.
-- En tu consulta veo que tienes solo dos tablas, entonces necesitas un solo INNER JOIN
- Los INNER JOIN encadenan tablas, es decir, debe haber por lo menos un campo en común entre dos tablas, luego por lo menos una de estas dos tablas tener un campo en común con la tercera tabla, estos campos en común se van encadenando con INNER JOIN.
|
|
|
1859
|
Programación / Bases de Datos / Re: Error en base de datos Sql
|
en: 2 Abril 2019, 05:35 am
|
Saludos,
- Cual es el nombre y extensión de su BackUp? Ej.: empresa.mdf o empresa.sql o empresa.bak
- Han revisado que exista el fichero que comenta el error? Ese fichero corresponde al de su BackUp?
|
|
|
1860
|
Sistemas Operativos / Windows / Re: VENTANAS EMERGENTES
|
en: 30 Marzo 2019, 16:03 pm
|
Saludos,
- Será cosa de ver como es que aparece esa ventana emergente, si es "parte del navegador" (plugin, extensión, barra, etc) o es una aplicación externa que se abre junto al navegador.
- Incluso podría ser publicidad que viene por medio del DNS o este embebido dentro del navegador web en sí.
- Lo más sencillo es hacerle un HardReset a tu navegador web, por ejemplo en Chrome basta con ir a: %localappdata% y eliminar la carpeta Google. PERO antes te recomendaría tomar nota de las contraseñas guardadas, favoritos y todo eso, porque una vez reseteado el navegador quedará como nuevo tal cual fue instalado por primera vez.
-- Escribe: %localappdata% en tu cortana o ejecutar o barra de direcciones del explorador de windows, luego Enter.
- Si el problema persiste, puede que tengas instado algún programa que se inicia con windows y que automáticamente embebe una barra, plugin, o extensión a tu navegador, tendrás que detecta dicho programa y desinstalarlo.
-- Algunos plugin o extensiones maliciosos no se muestran en el panel de plugin o extensiones del navegador, pero están ahí. El HardReset los remueve.
|
|
|
|
|
|
|