Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- :: by JaCk | Release 08/13/2017 | https://pastebin.com/QnyiHWWq | hide_meta.bat ---- Hides "Meta" files and directories Recursively.
- :: -- "Meta" items are dictated by [func_process_meta_files]
- :: Changelog
- :: * 08/13/2017 - Changed filtering to findstr instead off for loop to speed up processing. Rewrote hide bunctions to support more funky dunky chark-ters
- :: * 07/04/2017 - Fixed issue when for .actors directory not being processed, needs to be set as an extension
- :: * 07/04/2017 - Fixed issue when entering Double Quoted entry into prompt
- :: * 07/04/2017 - Changed hide output msg to be slightly cleaner -imo
- :: * 07/04/2017 - Changed Prompted help msg to be slightly clearer
- :: + 07/04/2017 - Added "extrathumbs" to the meta list
- :: + 06/22/2017 - Intial Release
- :::::::::::::::::::::::::::::::::::::::
- ::
- :: JK'D Blame-Game Agreement 1.0b, "Finger-Pointer Edition", written by JaCk
- ::
- ::: No Warranty, No Guarantee, No Support, AS-IS
- :::
- ::: USE AT YOUR OWN RISK
- ::: By sheer discretion and without notification, JaCk, retains the all rights, including exemptions, revocation of exemptions of this agreement!
- :::
- ::: By Running this script or ANY portion of it's, this script's, contents, you agree to the following:
- ::: - that you fully understand what these commands, expressions, functions, and/or script(s) or portions of script(s) do
- ::: - that you take responsibility for any actions, damages, physical losses, intellectual property losses, and/or losses of ANY kind
- ::: - that you take responsibility for any revenue, profits, physical gains, intellectual property gains, and/or gains of ANY kind
- ::: - that you DO NOT seek compensation of any kind, monies or otherwise, in ANY FORM, from previous, current and future parties; not limited to:
- ::: -- anyone
- ::: -- everyone
- ::: -- it's author(s)
- ::: -- it's contributor(s)
- ::: -- any beneficiaries
- ::: -- users
- ::: -- distributors
- ::
- :::::::::::::::::::::::::::::::::::::::
- :::::::::::::::::::::::::::::::::::::::
- ::
- :: - Most Functions are sourced from JaCks "AVScraper.bat" which were sourced from "AVDumpme.bat"
- :: -- On that note, this is not the most efficient script, if you do not like that write your own.
- ::
- :: - Concepts sourced from a recollection (JaCk's brain dump) of
- :: -- methods found stackexchange site(s) by various users customized with JaCk's taste
- :: :: ::
- :::::::::::::::::::::::::::::::::::::::
- @echo off && setlocal EnableDelayedExpansion
- rem Assigning Script Params to a variable
- set "params_main_script=%*"
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :::::: ::::::
- :::: User Settings/Input ::::
- :::::: ::::::
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- rem Hardcoded Path - bypassed only by passing in a parameter, default is NotSet
- set "var_process_dir="
- rem UTF8 support
- rem Sets the console to be able to process utf8 character sets
- rem Disable if you encounter weird problems
- rem - Default: true
- rem - Boolean: Enable set to any of the following [yes/true/1]
- rem - Boolean: Disable set to any of the following [no/false/0]
- set "_flag_utf8_support=true"
- rem Hide any gif that matches everything except extension
- set "hm_filer_name_matches_gif=true"
- rem Hide File/Directory filters -- file/folder endings
- set "hm_filer_name_ending=meta\> thumb\> thumbnail\> thumbnails\> extrafanart\> extrathumbs\> screenshots\> screenshot\> landscape\> backdrop\> clearart\> poster\> folder\> banner\> fanart\> disc\> logo\> palette\>"
- rem Hide File/Directory filters --- Global match -- CAUTION - filters out when matched anywhere in dirtree/filename
- set "hm_filer_name_wany=archos"
- rem Hide File/Directory filters --- Extension
- set "hm_filer_name_ext=.json\> .nfo\> .actors\> .description\> .xml\>"
- rem filter exclusions
- set "hm_filter_ignore_items=.\-.Manga. .\-.Sound. Relation. .\\meta\\."
- :::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :: -~-~-~-~-~-~-~-~-~-~-~-~-~- ### -~-~-~-~-~-~-~-~-~-~-~-~-~- ::
- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :::::: ::::::
- :::: Doo-Daads-Whatnots ::::
- :::: Errochecking-Prompts-Misc ::::
- :::::: ::::::
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- rem Process Booleans
- call :func_set_flag_booleans
- rem UTF8 Support
- if defined _flag_utf8_support (
- call :func_char_encode_init
- )
- rem When Params are provided, ass-u-me that it is a Comma/QuotedSpaced/Semi-Colon separated list.
- rem Even a "list" containing 1 item
- rem Does not matter if items at quoted or not
- if defined params_main_script (
- set "var_process_dir=!params_main_script!"
- )
- rem this help is only printed when the script is run without parameters
- if not defined var_process_dir (
- echo/&echo/&echo/&echo/&echo/&echo/&echo/&echo/
- echo/ Info: %~n0 Usage:
- echo/ %~nx0 [Base Directory]
- echo/
- echo/ Notes:
- echo/ ~ Quotes are optional
- echo/ ~ Prompted input or passing parameters work the same way
- echo/ ~ Directory Lists are accepted
- echo/ ~ Windows environment variables also ok
- echo/
- echo/ Examples:
- echo/ %~n0 C:\My Media\My Sub Dir
- echo/ %~nx0 "C:\My Media\My Sub Dir","M:\My Personal Media\Home Videos",'S:\Hidden\Tr0n Spotting'
- echo/ %~nx0 %Userprofile%\Videos
- echo/
- )
- rem ask user input when parameters are missing
- if not defined var_process_dir (
- echo/&echo/
- set "input=!cd!"
- echo/ -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
- echo/
- echo/ Input: Enter Base Directory or
- echo/ a list of Directories to process
- echo/
- echo/ [Default: !input!]
- echo/
- echo/ -~-~- -~-~-~-~-~-~-~- -~-~-
- set /p "input=Input > "
- echo/ -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
- set "var_process_dir=!input!"
- set "input="
- )
- rem Process the input
- rem when surrounded by doublequotes, strip them as they are added in the next loop
- if defined var_process_dir if "!var_process_dir:~0,1!!var_process_dir:~-1,1!" equ """" (
- set "var_process_dir=!var_process_dir:~1,-1!"
- )
- rem append gif to the exlusion list as needed
- if defined hm_filer_name_matches_gif set hm_filter_ignore_items=.gif$ !hm_filter_ignore_items!
- :: rem Converting single quotes to double quotes
- :: rem Stripping double sets of double quotes to a single set
- :: rem Converting semi-colons to commas
- :: REM set "var_process_dir=!var_process_dir:'="!"
- :: REM set "var_process_dir=!var_process_dir:""="!"
- :: REM set "var_process_dir=!var_process_dir:""="!"
- :: REM set "var_process_dir=!var_process_dir:;=,!"
- rem Converts commas to Quoted Spaces and recurses through the list
- if defined var_process_dir (
- for %%a in ("!var_process_dir:,= !") do (
- call :func_process_meta_files "%%~a"
- )
- set "var_process_dir="
- ) else (
- echo/ Info: No input recieved, exiting...
- )
- if defined hm_cntr_hide (
- echo/ Info: Total items hidden: !hm_cntr_hide!
- set "hm_cntr_hide="
- )
- rem UTF8 Support
- if defined _flag_utf8_support (
- call :func_char_encode_deinit
- set "_flag_utf8_support="
- )
- rem Scrub-de-dam
- if defined params_main_script (
- set "params_main_script="
- )
- :::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :: -~-~-~-~-~-~-~-~-~-~-~-~-~- ### -~-~-~-~-~-~-~-~-~-~-~-~-~- ::
- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :::::: ::::::
- :::: Bunctions ::::
- :::::: ::::::
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- goto :eof
- :::::::::::::::: :::: :::::::::::::::::
- rem International-love (utf8 only, otherwise, "get away from me you different, unclassified freak. Wow, 'non-standards' really crep me out")
- rem Above is a joke, No, I'm not going to explain it || print Hello effing PC world && echo yes, pun intended
- :func_char_encode_init
- for /f "tokens=2 delims=:" %%c in ('chcp') do set "chcp_orig=%%c"
- chcp 65001 2>nul 1>nul
- if not !errorlevel! equ 0 (
- echo/ ERROR: CHCP: UTF8 Support unavailible
- set "_flag_chcp_errored=true"
- )
- goto :eof
- :::::::::::::::::: :::::::::::::::::::
- :::::::::::::::: :::: :::::::::::::::::
- rem Well it was a phan vacation, time to get back to the grind... You.. You... You UTF8 you. *teehee* *giggle*
- :func_char_encode_deinit
- if not defined _flag_chcp_errored (
- chcp !chcp_orig! 1>nul
- ) else (
- set "_flag_chcp_errored="
- )
- goto :eof
- :::::::::::::::::: :::::::::::::::::::
- :::::::::::::::: :::: :::::::::::::::::
- rem Hide any items recursively
- rem Usage - call func_hide_item "C:\myfolder\My file.ext"
- rem Usage - call func_hide_item "C:\myfolder\My Subfolder"
- :func_hide_item
- set "params_hide_item=%*"
- set "params_hide_item=!params_hide_item:"=!"
- rem Check item accessiblity, leave function on error
- if not exist "!params_hide_item!" (
- echo/ Error: Hide: Unable to locate "!params_hide_item!"
- goto :eof
- )
- rem Check item hidden attribute, hide when needed
- dir /b /o /a:h "!params_hide_item!" 2>nul 1>nul
- if not !errorlevel! equ 0 (
- echo/ Info: Hiding: "!params_hide_item!"
- call attrib +H /S /D /L "!params_hide_item!"
- )
- set "params_hide_item="
- goto :eof
- :::::::::::::::::: :::::::::::::::::::
- :::::::::::::::: :::: :::::::::::::::::
- rem Hide any items recursively
- rem Usage - call func_hide_item "C:\myfolder\My file.ext"
- rem Usage - call func_hide_item "C:\myfolder\My Subfolder"
- :func_hide_pitem
- rem Check item accessiblity, leave function on error
- if not exist "%~1" (
- echo/ Error: Hide: Unable to locate "%~1"
- goto :eof
- )
- rem Check item hidden attribute, hide when needed
- dir /b /o /a:h "%~1" 2>nul 1>nul
- if not !errorlevel! equ 0 (
- echo/ Info: Hiding: "%~nx1"
- call attrib +H /S /D /L "%~1"
- set /a "hm_cntr_hide+=1"
- )
- goto :eof
- :::::::::::::::::: :::::::::::::::::::
- :::::::::::::::: :::: :::::::::::::::::
- rem Please note, when modifying the block below
- rem [%%~xz] is file extension
- rem [%%~nz] is file/directory name
- rem [%%~fz] is full file/directory name with path
- rem These two lines look for a specific string in the file/directory name. When found [error state is 0] calls the hide function
- rem echo "%%~nz" | findstr /i "archos" 2>nul 1>nul
- rem if !errorlevel! equ 0 call :func_hide_item "%%~fz"
- REM set "params_process_meta_files=%*"
- REM set "params_process_meta_files=!params_process_meta_files:"=!"
- REM echo/ Info: Hide: Prep: "!params_process_meta_files!"
- REM 'dir /s /b /o:-n /a:-h "!params_process_meta_files!" 2^>nul ^| findstr /r /i /v ".gif$ .\-.Manga. .\-.Sound. Relation. .\\meta\\." 2^>nul'
- :func_process_meta_files
- if not exist "%~1" (
- echo/ Error: Unable to access "%~1"
- echo/ Error: Unable to process "%~1"
- goto :eof
- )
- echo/
- echo/ Info: Hide: Prep: "%~1"
- for /f "tokens=1* delims=" %%z in (
- 'dir /s /b /o:-n /a:-h "%~1" 2^>nul ^| findstr /r /i /v "!hm_filter_ignore_items!" 2^>nul'
- ) do (
- if defined hm_filer_name_matches_gif if exist "%%~dpnz.gif" call :func_hide_pitem "%%~dpnz.gif"
- echo/"%%~nz" | findstr /r /i "!hm_filer_name_wany! !hm_filer_name_ending!" 2>nul 1>nul
- if !errorlevel! equ 0 call :func_hide_pitem "%%~fz"
- echo/"%%~xz" | findstr /r /i "!hm_filer_name_ext!" 2>nul 1>nul
- if !errorlevel! equ 0 call :func_hide_pitem "%%~fz"
- )
- goto :eof
- :::::::::::::::::: :::::::::::::::::::
- :::::::::::::::: :::: :::::::::::::::::
- rem For every variable that starts with [_flag_], check for true values and set/unset accordingly
- :func_set_flag_booleans
- for /f "tokens=1,* delims==" %%v in ('set _flag_') do (
- set "_fvar_value=%%w"
- if "!_fvar_value:~0,1!" equ "1" ( set "%%v=true"
- ) else if /i "!_fvar_value:~0,1!" equ "y" ( set "%%v=true"
- ) else if /i "!_fvar_value:~0,1!" equ "t" ( set "%%v=true"
- ) else set "%%v="
- )
- set "_fvar_value="
- goto :eof
- :::::::::::::::::: :::::::::::::::::::
- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :::::: :::::: :::::: :::::: :::::: ::::::
- :::: :::: :::: ::::
- :: -~-~-~-~-~-~-~ :: ### :: -~-~-~-~-~-~-~ ::
- :::: :::: :::: ::::
- :::::: :::::: :::::: :::::: :::::: ::::::
- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement