definir funcion para obtener un numero aleatorio real con powershell
Lo prometido es deuda, a si que voy a contaros como definir una función en powershell que obtenga un número aleatorio que tenga en cuenta el valor máximo en el cálculo del mismo.
Si no sabés de que estoy hablando, podéis leeros la entrada anterior donde hablaba de Get-Random.
Este es el código de la función que he llamado Get-RealRandom:

Como véis la función tiene definidos dos parámetros (ninguno de los dos son obligatorios) llamados -Max y -Min. Lo que hace el cuerpo de esta función es dependiendo de los parámetros que reciba llama a la función original Get-Random pero corrigiendo el valor del parámetro -Max para obtener un resultado dentro del rango deseado.
De esta forma, una vez tengamos cargada esta función en memoria podemos usarla de las siguientes maneras:
Get-RealRandom 10
Este comando obtendrá un número entre 0 y 10
Get-RealRandom 10 -Min 3
Este comando obtendrá un número entre 3 y 10
Si tenéis cualquier duda, escribir un comentario, os responderé lo antes posible.
obtener un numero aleatorio con powershell
Esta entrada tiene dos objetivos, el primero aprender a obtener un número aleatorio con powershell y el segundo advertiros del funcionamiento real de la función que nos ayuda a obtenerlo.
La función que ofrece powershell para obtener un resultado aleatorio (antes he dicho un número, pero realmente no es así, después me explico) es Get-Random.
Esta función acepta principalmente dos parámetros -Maximum y -Minimum. Os pongo algunos ejemplos de uso de esta función:
Get-Random 10
Este comando obtendrá un número entre 0 y 9
Get-Random 10 -Minimum 3
Este comando obtendrá un número entre 3 y 9
5 | Get-Random
Este comando obtendrá un número entre 0 y 4
Como podéis ver en los ejemplos el valor máximo que le indicamos a la función no será incluido en el cálculo del número aleatorio (esto es lo que quería mostraros). De esta forma, para evitar que nos confundamos, podemos tomar dos alternativas:
1) Usar la función indicando de manera visual el número que queremos usar de límite: Get-Random (10+1) -Minimum 2
De esta forma visualmente vemos que estamos obteniendo un número entre 2 y 10.
2) Definir una función Get-RealRandom que obtenga un número aleatorio teniendo en cuenta el valor que digamos como valor máximo en el cálculo y se usaría así: Get-RealRandom -Maximum 10 -Minimum 2
Con esta función estamos obteniendo un número entre 2 y 10.
Por último, como comenté al principio del post, en realidad Get-Random no sólo obtiene un número aleatorio, sino que también puede obtener un objeto aleatorio de una lista de objetos. Es decir, que podemos hacer cosas como lo siguiente:
"pepe", "luis", "angel" | Get-Random
Este comando devolverá uno de los 3 strings pasados por el pipeline
"pepe", 3, "angel" | Get-Random
Este comando va un poco más lejos y devolverá uno de los elementos pasados por el pipeline, en este caso son 2 strings y un integer
Get-Process | Get-Random
Este comando devolverá un proceso del sistema de manera aleatoria
Como véis la potencia que ofrece está función es realmente interesante y puede ser muy útil.
Si queréis podéis echar un ojo al código de la función que he definido como Get-RealRandom.
convertir variable php a js
Es difícil combinar varios lenguajes de programación en ciertas condiciones. El caso que nos ocupa es muy típico, por ejemplo: pasar a un mapa de google maps una dirección que tienes almacenada en una variable PHP.
Concretando un poco el problema a tratar, básicamente se trata de conseguir pasar una variable PHP a un archivo o a una función JS.
Vayamos al grano. Para empezar en nuestro archivo PHP que contiene la/s variable/s PHP vamos a convertirla en una variable Javascript.

Como podéis ver aquí se convierten 3 variables Javascript (provincia, municipio y calle) y se definen dos nuevas (posicion y posicionFormateada) que después se le pasarán a la función initialize de google maps, pero esto es otro tema que ahora no viene a cuento.
De esta forma, ya sea en una función que se defina posteriormente, o bien, en un archivo JS que se cargue después de este código, estas nuevas variables Javascript podrán ser usadas y contendrán lo mismo que las variables PHP.
Ahora puedes hacer lo que quieras con tus nuevas variables Javascript:

funcion para buscar cadena de texto en un archivo con powershell
Todos los lenguajes de programación disponen de funciones que nos facilitan la vida a los programadores, pero están suelen ser muy limitadas. Por este motivo y por muchos otros siempre es necesario definir nuestras propias funciones.
Hoy os voy a contar como definir una función en powershell con un ejemplo muy útil: buscar una cadena de texto en un archivo.
Definición de la función:
function buscarCadena([String]$cadena , [String]$file) {
# Se verifica que el fichero existe y la cadena no es nula
if ((Test-Path -Path $file) -and $cadena) {
$list = Get-Content $file
# Si se encuentra la cadena se devuelve true
if ($list -match $cadena) {
return $true
}
}
# Se devuelve false si no encuentra nada o el fichero no existe
return $false
}
Como véis la función se define con la palabra "function" seguido del nombre que le queráis poner a la función. Después entre paréntesis se indican los parámetros que sean necesarios, en caso de no necesitar parámetros, los paréntesis deben ir vacíos.
Después entre llaves va el código de la función. En este caso lo que hace la función es leer el archivo pasado por parámetro y busca el texto que también se pasa por parámetro.
El resultado de la función (que no imprescindible) se indica con el comando "return" seguido del valor a devolver. En el caso de la función del ejemplo, devuelve $false o $true, dependiendo de si se ha encontrado la cadena de texto buscada o no.
Ejemplo de llamada a la función:
buscarCadena "texto a buscar" "c:\archivo.txt"
El resultado de esta llamada se puede usar de muchas maneras, por ejemplo, en un if o asignando el resultado a una variable.
if (buscarCadena "texto a buscar" "c:\archivo.txt") { ..... }
$existeCadena = buscarCadena "texto a buscar" "c:\archivo.txt"
escribir en un fichero con powershell
Siempre puede venir bien guardar cierta información en un archivo.
Para ello, powershell dispone de varios métodos. Uno de ellos es el cmdlet Out-File que tiene opciones para sobreescribir un archivo, añadir el texto que queramos al final del mismo o guardar el fichero en formato ascii o unicode.
Vamos a pasar a los ejemplos.
1. Escribir un texto en un archivo, sobreescribiéndolo en caso de que existiera.
$textoAGuardar | Out-File -FilePath $rutaDelArchivo
2. Escribir un texto en un archivo, sobreescribiéndolo en caso de que existiera incluso si es de sólo lectura.
$textoAGuardar | Out-File -FilePath $rutaDelArchivo -Force
3. Escribir un texto en un archivo, añadiendo el texto al final en caso de que existiera.
$textoAGuardar | Out-File -FilePath $rutaDelArchivo -Append
4. Escribir un texto en un archivo, sobreescribiéndolo en caso de que existiera con formato ASCII.
$textoAGuardar | Out-File -FilePath $rutaDelArchivo -Encoding ASCII
5. Escribir el contenido de un objeto en un archivo, sobreescribiéndolo en caso de que existiera.
Out-File -FilePath $rutaDelArchivo -Encoding ASCII -InputObject $textoAGuardar
Podéis encontrantar más ayuda en la web de microsoft