Tengo el siguiente script por lotes de Wikipedia:
@echo off
for /R "C:\Users\Admin\Ordner" %%f in (*.flv) do (
echo %%f
)
pause
En el bucle for, todos los archivos con la extensión flv se repiten, pero quiero realizar algunas acciones con los archivos donde necesito una vez el archivo sin la extensión y una vez con la extensión. ¿Cómo podría obtener estos dos?
Busqué soluciones pero no encuentro ninguna. Soy un verdadero novato en lote ...
file
batch-file
Poru
fuente
fuente
C:\Users\Admin\Ordner\foo.flv
como %% ~ nf le daríafoo
. Si desea todo excepto la extensión, use %% ~ df %% ~ pf %% ~ nf que le daríaC:\Users\Admin\Ordner\foo
%%~dpnf
sería una alternativa más corta.%1
en un script por lotes.echo %~n1
era lo que buscaba.En caso de que el archivo que contiene su variable no exista, el
FOR
enfoque no funcionará. Un truco que podría usar, si conoce la longitud de la extensión, es tomar una subcadena:los
-4
medios que los últimos 4 dígitos (presumiblemente .ext se truncarán).fuente
echo %f:~0,-4%
en el contexto del ejemplo utilizado en la pregunta. ¿Qué estoy haciendo mal?SET fl=%%f
y luegoecho %fl:~0,-4%
También soy un desconocido para cmd de windows, pero intente esto:
fuente
Esta es una respuesta realmente tardía, pero se me ocurrió esto para resolver un problema particular que tuve con DiskInternals LinuxReader agregando '.efs_ntfs' a los archivos que guardó en directorios que no son NTFS (FAT32):
fuente
.encrypted
agregó a todos sus archivos, junto con una demanda de rescate. Aparentemente, el script de ataque debe haber sido un archivo por lotes que es el reverso de esto y agregado.encrypted
a todos los archivos.Estoy usando esto si simplemente quiero quitar la extensión de una variable (sin repetir ningún directorio o archivo existente):
Si desea quitar la extensión de una ruta completa, use
%%dpnf
en su lugar:Ejemplo:
(Usar directamente en la consola)
fuente
Usando cygwin bash para cortar
fuente
Si su variable es un argumento, simplemente puede usar
%~dpn
seguido del número del argumento, para que no tenga que preocuparse por las diferentes longitudes de extensión.Por ejemplo
%~dpn0
, devolverá la ruta del archivo por lotes sin su extensión,%~dpn1
será%1
sin extensión, etc.fuente