Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - cat26

#1
Justo lo que buscaba :D, muchas gracias a los demás que respondieron
Cita de: EdePC en  9 Septiembre 2019, 17:38 PM
Saludos,

- Me parece que cada quien entiende diferente lo que quieres lograr XD, alguno dará en el clavo. Lo que entiendo yo es que quieres guardar instrucciones como texto en tu ArrayList y luego interpretar dicho texto para que ejecute la instrucción.

Código (powershell) [Seleccionar]
$arreglo = New-Object System.Collections.ArrayList
For ( $x = 1; $x -le 5; $x++ ) {
  $arreglo.Add("`$variable$x = Write-Host 'Hola'")
}

Clear-Host
Invoke-Expression $arreglo[3]





Mod: Por favor, utilizar las etiquetas GeSHi.
#2
Hola, aqui molestando de nuevo, buen día a todos

Lo que estoy haciendo es con un for variables, el problema que al mandarlas a llamar no me las llama como si fueran variables , solo me las crea como texto o no se que sera, creó las variables con un numero según el for, y si yo concateno  con algo, me dice que no la eh declarado y me di cuenta y en la consola cuando declaro una variable yo mismo sale en  verde pero cuando lo trato de hacer con el for me sale en amarillo como cualquier texto. Entonces no se hay un comando para llamarlos, o algún procedimiento para usarlos como variable o simplemente no se puede hacer eso? gracias y saludos
Saludos
Código (powershell) [Seleccionar]

$arreglo = New-Object System.Collections.ArrayList
for ($x=1; $x -le 5; $x++) {
$arreglo.Add("`$variable$x = Write-Host 'Hola'")
}
::como lo llamaria para que lo leyera la consola como comando? y no como texto?
::que cuando yo le diga arreglo[0]
::me diga Hola
#3
Muchas gracias eso me funciona, es que soy nuevo en powershell...
#4
Muchas gracias por contestar
probé el código y me sigue repitiendo no se si es error de mi for o que, emmm o no se si no me di a entender

este es el codigo que llevo
Código (dos) [Seleccionar]

::OBTENEMOS LA CANTIDAD DE ARCHIVOS EN LA RUTA
$numero_archivos = (Get-ChildItem C:\l).Count;
::son 16 archivos asi que me devuelve 16

::DECLARAMOS EL ARRAY LIST
$array_list_nombres = New-Object System.Collections.ArrayList

::ASIGNAMOS LA RUTA A UNA VARIABLE
$archivos = Get-ChildItem -Path "C:\l" -File -Name

::GUARDAMOS EN EL ARRAY LIST
$archivos | Where-Object {$array_list_nombres.Add($_)}

::CREAMOS  UN ARAY LIST Y CREAMOS VARIABLES
$array_list_variables = New-Object System.Collections.ArrayList
for ($x=1; $x -le $numero_archivos; $x++) {
    $array_list_variables.Add("`$Ruta$x")
}
::JUNTO LOS 2 ARREGLOS
for ($n=0; $n -le ($numero_archivos -1); $n++) {
$array_list_variables[$n]+" ="+" C:/l/"+"$array_list_nombres[$x]"
}
::ME SIGUE DEVOLVIENDO TODA LA LISTA DE LOS ARCHIVOS EXISTENTES EN UN SOLO REGISTRO, COMO LO MUESTRO EN LA CAPTURA
::DE ABAJO,  PERO CUANDO LO PONGO SOLITO EN PS $array_list_nombres[0] SI ME DEVUELVE UN SOLO NOMBRE PERO CUANDO LO PONGO EN EL FOR ME SALE TODA LA LISTA


Como quiero que quede es asi: http://prntscr.com/p2h8ke
Como es que sale: http://prntscr.com/p2ha15
#5
Hola, alguien me puede ayudar?
Estoy en POWERSHELL

Necesito guardar el nombre y extension de archivos alojados en una ruta especifica y que se guarden en un array para despues trabajar con esos nombres

Intente esto
Código (dos) [Seleccionar]

::obtengo el numero de archivos en la carpeta
$numero_archivos = (Get-ChildItem C:\l).Count;
::son 16 archivos asi que me devuelve 16

::creamos un array list
$array_list_nombres = New-Object System.Collections.ArrayList
::lleno el array list
for ($x=1; $x -le $numero_archivos; $x++) {
   $array_list_nombres.Add((Get-ChildItem -Path C:\l))
}
::Aqui el error: cuando obtengo el valor de cada posicion  del array list me devuelve todos los nombres que obtuvo en un solo registro
::por lo que no me sirve por que solo quiero me me devuelva el nombre de un archivo por registro de array list
:: osea asi quiero que me los llene:
::array_list_nombres[0] = archivo1.xml
::array_list_nombres[1] = archivo2.xml
::array_list_nombres[2] = archivo3.xml
:: y asi hasta llenar los 16 registros en el array, para como les comentaba usar esos nombres en otro proceso



Gracias y saludos

#6
Hola, alguien me puede ayudar? quiero guardar el nombre de la carpeta actual donde esta el BAT en una variable para poder usar esa variable posteriormente (El puro nombre de la carpeta actual sin lo demas de la ruta

C:\OTRA_CARPETA\CARPETA1
Lo que quiero es que guarde el nombre "CARPETA1" en una variable

Código (dos) [Seleccionar]

SET carpeta_actual=%%~no
::Tengo una nocion pero aun no me quedan claros los codigos para mostrar solo una cierta cosa
::echo %~xn0
::echo %~fn0
::echo %~nn0
::echo %~pn0
::echo %~dn0
::echo %~dp0
#7
Muchas gracias, aprendo mucho de ustedes :D  ;-) ;-) ;-)
#8
Hola a todos, resulta que me disponía a crear un bat que me generara un txt y dentro de el ponerle cierto texto

resulta que cheque y se hacen asi los txt con bat, probe generando un html y me lo genera pero no con ese tipo de caracteres (<>) solo si lo pongo entre comillas "<html>" y pues eso no me sirve, no lo leeria el navegador en el caso del html

Código (dos) [Seleccionar]

@echo <html> >>archivo.html
@echo <Hola cualquier cosa aqui> >>archivo.txt


por lo tanto da error pues es un caracter reservado:  > por lo que no me lo detecta como texto y no genera el txt o html

trate de buscar una solución borrando y detectando la linea y la palabra por otra con este otro codigo:

Código (dos) [Seleccionar]

echo off
Setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%x in ('TYPE archivo.txt') do (
set linea=%%x
set linea=!linea:"<html>"=html!
call :show !linea!
)
goto:eof
:Show
echo %* >> salida.txt
goto:eof


Pero igual como es un carácter reservado no me deja remplazarlo en el txt o html
Hay alguna solución ante esto?

:huh: :huh: :huh: :o

#9
gracias con su ayuda pude resolver lo que buscaba
Código (dos) [Seleccionar]
FOR %%o IN (*.java) DO (
SET nombresinextension=%%~no
)
#10
Hola a todos! Necesito ayuda con un batch.
Necesito que lea el nombre de un archivo y lo almacene en una variable para posteriormente tarabajar con ese nombre. hay alguna manera???
El archivo no importa el nombre *.txt lo que me importa es nadamas el nombre eh estado intentando con varios codigos que encontré y nada. Se los agradeceria
GRACIAS
Código (dos) [Seleccionar]
@echo off
FOR %%F IN (*.java) DO SET NOMBRE=%%F
ECHO %NOMBRE%
pause

Asi solo logro hacer que me muestre nombre y extension :/