none
Recorrer un directorio, guardar los items en una variable, hacer una exclusión y pasar las variables no exluidas a otro proceso RRS feed

  • Pregunta

  • Hola

    Tengo el siguiente escenario, dentro del directorio "Documents" hay diversos archivos y carpetas. Tengo un programa que para operar necesita como parámetro el nombre del archivo y carpeta, por lo que debo hacer un escaneo de "Documents" y debo hacer una exclusión de un par de carpetas para que el programa no reciba ese parámetro y n modifique los directorios. 

    Lo que se me ocurrió fue lo siguiente: 

    @echo off

    set contador=0
    set var=0

    call :renameNoSpace  /R  C:\Users\Administrador\Documents\
     
    cd C:\Users\Administrador\Documents\
    dir/b > C:\Users\Administrador\Desktop\archivos.txt
    cd C:\Users\Administrador\Desktop\

    for /f "delims=;" %%a in (archivos.txt) do set linea=%%a&call :cuenta
    pause
    goto:eof
     
    :cuenta
    set /A contador +=1
    set var%contador%=%linea%
    echo var%contador%=%linea%
    cd C:\Program Files\Blancco\Blancco File Eraser - Enterprise Edition\
    BlanccoFileEraserCmd.exe /ssl 0 C:\Users\Administrador\Documents\%linea%

    :renameNoSpace  [/R]  [FolderPath]

    @echo off
    setlocal disableDelayedExpansion
    if /i "%~1"=="/R" (
      set "forOption=%~1 %2"
      set "inPath="
    ) else (
      set "forOption="
      if "%~1" neq "" (set "inPath=%~1\") else set "inPath="
    )
    for %forOption% %%F in ("%inPath%* *") do (
      if /i "%~f0" neq "%%~fF" (
        set "folder=%%~dpF"
        set "file=%%~nxF"
        setlocal enableDelayedExpansion
        echo ren "!folder!!file!" "!file: =!"
        ren "!folder!!file!" "!file: =!"
        endlocal
      )

    Pero no he podido solucionar

    1) si los archivos llevan espacio no se pasa adecuadamente como parámetro. 

    2) El decirle que si encuentra la carpeta "No borrar" omita pasar este nombre como parámetro

    Si me pueden ayudar, gracias 

    martes, 4 de agosto de 2020 18:45