93 lines
2.6 KiB
Batchfile
93 lines
2.6 KiB
Batchfile
REM THIS FILE IS NOT WORKING!!!!
|
|
REM Revit.ini is encoded as UTF-16 however windows cmd is UTF-8 only, so this script should be rewritten in powershell or ither language.
|
|
REM I leave it here for historical reasons
|
|
@echo off
|
|
REM Version: 1.0
|
|
REM Removes network files from recent files from Revit.ini
|
|
REM You can set up wich drives to clean from the ini and the folder for local files. It creates a backup before modifying the ini.
|
|
REM This script solves a bug in Revit 2019 onward, where File menu freezes for minutes if there is an inaccessible file in the recent file list
|
|
REM Created by Peter Gyetvai: gyetpet@gmail.com with the help of the internet
|
|
|
|
REM --------
|
|
REM Settings
|
|
REM --------
|
|
|
|
REM Revit versions to clean:
|
|
REM Separate elements in these list with spaces:
|
|
SET REVITVERSIONS=2019 2020
|
|
|
|
REM External drive letters, path from this drives will be cleaned:
|
|
REM Separate elements in these list with spaces:
|
|
SET EXTERNALPATH=P Q
|
|
|
|
REM Clear local files from path: [true/false]
|
|
REM From Revit 2019.2 local files of unaccessible servers also freeze the start screen and file menu. If this is set to true, local files will be cleaned as well.
|
|
SET CLEARLOCALFILES=true
|
|
|
|
|
|
REM -----------------------
|
|
REM Beginning of the script
|
|
REM -----------------------
|
|
|
|
chcp 1200
|
|
setlocal enabledelayedexpansion
|
|
|
|
(for %%a in (%REVITVERSIONS%) do (
|
|
call :inicheck %%a
|
|
))
|
|
|
|
echo Removed problematic lines from Revit.ini
|
|
|
|
GOTO :eof
|
|
|
|
:inicheck
|
|
set currver=%1
|
|
set folder=%appdata%\Autodesk\Revit\Autodesk Revit %currver%
|
|
set theini=%folder%\Revit.ini
|
|
set thebackup=%theini%.bckp
|
|
set tempini=%theini%-temp
|
|
|
|
IF EXIST "%theini%" (
|
|
echo Creating backup: %thebackup%
|
|
copy /y "%theini%" "%thebackup%"
|
|
|
|
if %CLEARLOCALFILES% equ true (
|
|
call :findprojectpath
|
|
call :findpathlines
|
|
) else (
|
|
call :findpathlines
|
|
)
|
|
)
|
|
EXIT /B
|
|
|
|
:findprojectpath
|
|
FOR /F "tokens=1,2 delims==" %%G IN ('type "!theini!"') DO (
|
|
if %%G equ ProjectPath (
|
|
echo Found project path: %%H
|
|
set path=%%H
|
|
set ppath=!path:\=\\!
|
|
echo !ppath!
|
|
call :dellineandmove File.=!ppath!
|
|
|
|
)
|
|
)
|
|
EXIT /B
|
|
|
|
:findpathlines
|
|
(for %%b in (%EXTERNALPATH%) do (
|
|
echo Finding lines for drive: %%b:\
|
|
set currdrive=%%b:\\
|
|
call :dellineandmove !currdrive!
|
|
))
|
|
EXIT /B
|
|
|
|
:dellineandmove
|
|
echo Deleting line(s) from file with regex: %*
|
|
type "!theini!" | findstr /v /r %* > "!tempini!"
|
|
echo Moving temp file
|
|
move /y "!tempini!" "!theini!"
|
|
EXIT /B
|
|
|
|
REM -----------------------
|
|
REM End of the script
|
|
REM ----------------------- |