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ú

Temas - Orni1

#1
PHP / url en funcion php
7 Abril 2021, 14:02 PM
Quiero obtener el tamaño de un archivo remoto y he encpntrado esta función php que funciona...

Código (php) [Seleccionar]
<?php
function retrieve_remote_file_size($url){
     
$ch curl_init($url);

     
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
     
curl_setopt($chCURLOPT_HEADERTRUE);
     
curl_setopt($chCURLOPT_NOBODYTRUE);

     
$data curl_exec($ch);
     
$size curl_getinfo($chCURLINFO_CONTENT_LENGTH_DOWNLOAD);

     
curl_close($ch);
     return 
$size;
}
echo 
retrieve_remote_file_size("https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png");
?>

... me devuelve el tamaño del logo en bites 5969.
Si a la url que quiero llegar le quiero poner los comodines /../ tengo que indicar a curl "--path-as-is" para que no anule los comodines.

El problema es que no se donde colocar "--path-as-is" en la función php.







#2
Scripting / restar dias
3 Abril 2021, 18:58 PM
Tengo este código para obtener la fecha en formato dd-mm-yyyy

Código (bash) [Seleccionar]
@echo off
for /f "tokens=2 delims==" %%G in ('wmic os get localdatetime /value') do set datetime=%%G
set yyyy=%datetime:~0,4%
set mm=%datetime:~4,2%
set dd=%datetime:~6,2%
set dd=%datetime:~6,2%
echo %dd%-%mm%-%yyyy%


Que da este resultado hoy 03-04-2021

Si al día le sumo o resto una unidad no mantiene el formato de dos cifras si es menor 10.
Cómo puedo hacer para restar uno cada vez  que quiera y siempre guarde el formato de dos cifras en el día.
Si hago esto:
Código (bash) [Seleccionar]

set /a dd=%dd%-1
echo %dd%-%mm%-%yyyy%

El resultado es 2-04-2021 no es el que quiero 02-04-2021
No sirve la opcion de añadir el cero...
Código (bash) [Seleccionar]
if %dd% LSS 10 set dd=0%dd% porque la suma o resta se puede repetir y añadiría un cero cada vez. Las veces que se repita la resta es variable.

#3
Hola de nuevo.

Alguien sabe decirme como podría listar los archivos de un directorio a un archivo de texto y el texto de ese archivo sea en este formato:

archivo1.jpg archivo2.jpg archivo3.jpg archivo4.jpg

Cada nombre de archivo separado por un espacio y la búsqueda sea por extensión de archivo.

Buscar todos los "jpg" del directorio ya se, pero sacarlos en formato lineal separado por espacios ni idea de si se puede. Lo suyo sería con un bat pero me da lo mismo el tipo de script que escriba el archivo de texto.

Gracias.
#4
Scripting / remotezip en python
23 Febrero 2021, 21:37 PM
Estoy enredando con python para obtener archivos en remoto desde un zip.

Esto lo tengo claro que debe ser así

Código (python) [Seleccionar]
import os
import subprocess
from remotezip import RemoteZip
with RemoteZip(url.zip) as zip:
   zip.extract('archivo.txt')


Por otra parte uso curl con el parametro --path-as-is para poder utilizar los comodines /../ en el enlace.

Para usar curl en python hago así:
Código (python) [Seleccionar]
import os
import subprocess
subprocess.run('curl.exe --path-as-is "http://servidor/../directorio/archivo.zip" -o archivo.zip')


La pregunta es cómo puedo usar una url con los comodines /../ en RemoteZip o como paso el contenido que obtiene curl a remotezip para obtener solo el archivo.txt sin descargar el zip o leer el  texto en remoto.


[MOD] Usar la etiqueta GeSHi correcta.
 
#5
Scripting / No cierra cmd con edlin
24 Septiembre 2017, 00:14 AM
Tengo dos archivos texto iguales (texto1 y texto2) con este formato

juan
antonio
el_bueno
el_bueno2
pedro

Necesito meter el_bueno, el_bueno2, en dos variables para crear un directorio con ese nombre compuesto

he procedido así:


@echo off
rem borra las dos primeras lineas de texto1 y deja "el bueno" en primera linea.
(
ECHO 1d, 1d
ECHO E
) | EDLIN /B texto1.txt > nul 2>&1
Echo.
>Nul Ping -n 2 Localhost
rem borra las tres primeras lineas de texto2 y deja "el bueno2" en primera linea.
Echo.
(
ECHO 1d, 2d
ECHO E
) | EDLIN /B texto2.txt > nul 2>&1
goto datos
:datos
rem toman las primeras lineas de los textos para incluirlos en las variables.
<"texto1.txt" set /p "var1="
set "var1"
Echo.
<"texto2.txt" set /p "var1="
set "var2"

Md %var1%_%var2%


Luego copio unos archivos de otro directorio a ese que he creado y lo comprimo en rar. Eso así funciona pero al terminar el proceso no cierra la ventana de cmd.

He probado con esta otra formula para mover las lineas a la primera linea y tomar el dato para la variable...

@echo off
(
echo 3,3,1M
echo e
) | edlin /b texto2.txt
(
echo 4,4,1M
echo e
) | edlin /b texto2.txt


pero me pasa lo mismo.

¿Hay manera de tomar el dato de los textos sin usar edlin?





#6
Scripting / SET /P sin valor declarado
21 Septiembre 2017, 12:33 PM
He creado un bat para comprimir archivos con contraseña.

Con la variable
SET /P Pass= ^> Enter the value for the password in all rar files:

Pido la contraseña.

Con el código:

if exist %mpn% %temp%\adds\rar a -r -rr -v116M -p%Pass% compressed\%mpn% %mpn%.rar %mpn%

if not exist compressed\%mpn%.rar goto rarerror
rmdir /s /Q %mpn%
goto inicio

:rarerror
   echo No se ha podido crear el archivo comprimido.
   pause >nul
   @cls&exit


Esto funciona bien (siempre que se le de valor a %Pass%).

El problema me surge cuando no pongo ningún valor declarado en Set /P
Si lo dejas en blanco y pulsas enter y el código corre hasta que llega -p%Pass% ahí queda bloqueado.

Qué puedo hacer para que si la variable %Pass% no tiene valor el código en la orden de compresión la salte, o a ultimo remedio si no se pone valor a set /p no se pueda continuar adelante hasta darle valor a la variable %Pass%.

Gracias por anticipado
#7
Scripting / el signo =
16 Septiembre 2017, 13:49 PM
Vengo leyendo y aprendiendo del gran post http://foro.elhacker.net/scripting/acciones_sobre_archivos_de_texto_batch-t242748.0.html

pretendo cambiar un texto por otro, en el tema citado está este código:

Citar@echo off
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%x in ('type texto.txt') do (
set linea=%%x
set linea=!linea:Perl=C!
call :show !linea!
)
goto:eof
:show
echo %* >> out.txt
goto:eof

El código funciona perfecto pero tengo un problema siguiendo con ejemplo mi texto seria

Perl=CCCC

y lo que quiero eliminar es Perl= y cambiarlo por HT de tal modo que en esa linea quede HTCCCC


Con ejemplo el código sería


Citar@echo off
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%x in ('type texto.txt') do (
set linea=%%x
set linea=!linea:Perl==HT!
call :show !linea!
)
goto:eof
:show
echo %* >> out.txt
goto:eof

Pero no funciona por el signo =

¿Hay manera de escribir el signo = y que lo reconozca como texto no como parte del codigo?
#8
Hola compañeros

Tengo un bat que me genera una carpeta comprimida rar con contraseña a partir de un zip sin carpeta con este código:

if exist lote.zip 7z.exe e lote.zip -oarticulo_3750_7791
if exist lote.zip rar a -r -plaquelepongo rar\articulo_3750_7791.rar articulo_3750_7791
if exist lote.zip RD /q /s articulo_3750_7791

El nombre del articulo es el mismo siempre pero el numero 3750_7791 puede variar con el tiempo y lo señala otro archivo de texto (version.txt)  que viene dentro de lote.zip, con este formato:

nombre=pieza8760
version=8791

Hasta ahora lo que hago es abrir version.txt copiar el primer numero (nombre=pieza), editar el bat y reemplazar el dato viejo por el nuevo en articulo_3750, luego copio el numero (version=) y repito reemplazar para el segundo numero en articulo_3750_7791. Una vez editado ya puedo dejar trabajar el bat  hasta el próximo cambio de versión.

Lo que necesito es generar un código que copie el numero de pieza y lo ponga en el bat en todos los sitios donde esté el numero y ademas que copie la versión y haga lo propio

Es decir dejar el bat así:

if exist lote.zip 7z.exe e lote.zip -oarticulo_8760_8791
if exist lote.zip rar a -r -plaquelepongo rar\articulo_8760_8791.rar articulo_8760_8791
if exist lote.zip RD /q /s articulo_8760_8791


¿Esto es posible?

Me valdría con que solo cambiara el segundo dato ya que el primero lo conozco con antelación y puedo dejar el bat nuevo editado con los primeros números a falta del numero de versión.