1 (изменено: temich_, 2014-03-27 01:43:33)

Тема: CMD/BAT: уменьшить код батника оставив рабочим

файл использую на работе при случаях, когда у пользователя нехватка места
подскажите как сократить данный батник и помогите в его доработке
1) удалять по маске, то есть использовать часть названия папки (чаще начало или то что в {})
2) нужно поставить запрет на удаление файлов и путей к ним RMS.MSI
3) удалять нужно весь путь и файлы в папках, если только там не встречается RMS.MSI

с кодировкой я думаю понятно

и если не сложно, подскажите команду для вгона компа в домен

Post's attachments

cleaner1.txt 92.71 kb, 18 downloads since 2014-03-27 

You don't have the permssions to download the attachments of this post.

2

Re: CMD/BAT: уменьшить код батника оставив рабочим

вот так сократил код


@ECHO OFF


::
::Удаление временных папкок с обновлениями
::Удаление временных папкок с обновлениями Internet Exlorer 8
::Удаление временных папкок с обновлениями Internet Exlorer 7
::Очистка скаченных файлов из Downloaded Installations
::Очистка скаченных файлов из SoftwareDistribution\Download
::Очистка скаченных файлов из Installer
::Очистка скаченных файлов из Temp
::Очистка корзин в Windows 7
::Очистка корзин в Windows XP:
::Очистка очереди печати
::
::Удаление учетных данных пользователя
::

rem ===============================================
@ECHO Удаление временных папкок с обновлениями
pushd && (rmdir /s /q "%windir%\$NtUninstallKB958687$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2264107$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2412687$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2476490$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2483614$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2485663$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2492386$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2506212$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2507618$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2507938$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2508272$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2508429$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2509553$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2535512$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2536276-v2$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2541763$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2544893$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2544893-v2$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2562937$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2564958$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2566454$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2567053$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2567680$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2570222$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2570791$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2570947$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2584146$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2585542$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2592799$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2598479$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2616676-v2$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2618451$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2619339$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2620712$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2624667$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2631813$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2646524$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2653956$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2655992$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2659262$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2661254-v2$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2661637$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2676562$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2686509$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2691442$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2698365$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2705219-v2$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2712808$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2719985$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2723135-v2$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2724197$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2727528$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2736233$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2749655$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2753842$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2753842-v2$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2756822$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2757638$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2758857$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2761226$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2770660$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2778344$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2779030$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2779562$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2780091$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2799494$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2802968$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2807986$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2808679$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2808735$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2813170$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2813347$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2820197$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2820917$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2829361$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2834886$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2834904_WM11$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2839229$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2845187$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2850851$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2603381$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2467659$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2633952$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2685939$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2695962$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2705219$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2707511$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2718523$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2718704$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2723135$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2731847$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB943729$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB969084$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB898461$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallMSCompPackV1$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallWMFDist11$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallwmp11$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallWMFDist11$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2079403$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2115168$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2121546$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2141007$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2158563$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2229593$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2259922$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2264107$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2279986$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2286198$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2296011$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2345886$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2347290$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2360131$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2360937$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2378111_WM9$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2387149$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2393802$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2419632$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2423089$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2440591$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2443105$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2443685$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2476687$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2478960$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2478971$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2479943$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2483185$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2483614$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2503658$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2506223$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2511455$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB923561$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB946648$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB950762$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB950974$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB951376-v2$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB951978$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB952004$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB952069_WM9$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB952287$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB952954$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB954155_WM9$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB955759$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB956572$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB956802$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB956844$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB959426$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB960803$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB960859$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB968389$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB969059$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB970430$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB971029$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB971657$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB972270$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB973507$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB973540_WM9$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB973815$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB973869$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB973904$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB974112$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB974318$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB974392$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB974571$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB975025$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB975467$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB975558_WM8$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB975560$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB975713$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB977816$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB977914$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB978338$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB978542$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB978695_WM9$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB978706$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB979309$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB979482$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB979687$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB981322$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB981997$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB982132$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB982665$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2481109$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2510581$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2813345$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2838727$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2834904-v2_WM11$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2847311$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2849470$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2850869$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2859537$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2862330$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2862335$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2863058$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2864063$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2868038$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2876217$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2876315$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2883150$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB929399$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB954154_WM11$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB961118$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB968930$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2620712_0$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2731847-v2$") 2>nul
pushd && (rmdir /s /q "%windir%\$968930Uinstall_KB968930$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB957097$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB939683$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB968930$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB971513$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB971737$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB973687$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2436673$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2621440$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2633171$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2639417$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2641653$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2641690$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2647518$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2660465$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2709162$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB967715$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB938464-v2$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB950760$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB951066$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB951698$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB951748$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB954459$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB954600$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB955069$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB955839$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB956803$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB956841$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB958644$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB958644$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB958690$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB960225$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB960715$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB941569$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2813347-v2$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2834902-v2_WM10$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2862152$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2868626$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2876331$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB915800-v4$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB940157$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB956744$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB958869$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB961501$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB963093$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB975562$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB978601$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB980195$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB980232$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB980436$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB982214$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2479628$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2485376$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2524375$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2892075$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2893294$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2893984$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2898715$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2900986$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2904266$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2914368$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2916036$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2929961$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2930275$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallWudf01000$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallXPSEPSCLP$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB981957$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB981852$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB981793$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB980218$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB979683$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB979559$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB979402_WM9$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB979306$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB978262$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB978251$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB978037$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB977165$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB976098-v2$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB975561$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB973525$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB973354$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB971633$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB971557$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB971486$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB971468$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB970238$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB969947$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB968816_WM9$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallbasecsp$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallKB2296199$") 2>nul
pushd && (rmdir /s /q "%windir%\$NtUninstallWdf01009$") 2>nul
rem ===============================================
@ECHO Завершено удаление временных папкок с обновлениями
rem ===============================================



rem ===============================================
@ECHO Удаление временных папкок с обновлениями Internet Exlorer 8
rem ===============================================
pushd && (rmdir /s /q "%windir%\ie8updates") 2>nul
rem ===============================================
@ECHO Завершено удаление временных папкок с обновлениями Internet Exlorer 8
rem ===============================================



rem ===============================================
@ECHO Удаление временных папкок с обновлениями Internet Exlorer 7
rem ===============================================
pushd && (rmdir /s /q "%windir%\ie7updates\KB956390-IE7") 2>nul
pushd && (rmdir /s /q "%windir%\ie7updates\KB961260-IE7") 2>nul
rem ===============================================
@ECHO Завершено удаление временных папкок с обновлениями Internet Exlorer 8
rem ===============================================



rem ================================================
@ECHO Очистка скаченных файлов из Downloaded Installations
rem ================================================
pushd && (rmdir /s /q "%windir%\Downloaded Installations") 2>nul
rem ================================================
@ECHO Очистка скаченных файлов из Downloaded Installations
rem ================================================



rem ================================================
@ECHO Очистка скаченных файлов из SoftwareDistribution\Download
rem ================================================
pushd && (rmdir /s /q "%windir%\SoftwareDistribution\Download") 2>nul
rem ================================================
@ECHO Завершена очистка скаченных файлов из SoftwareDistribution\Download
rem ================================================



rem ================================================
@ECHO Очистка скаченных файлов из Installer
rem ===============================================
pushd && (rmdir /s /q "%windir%\Installer") 2>nul
rem ================================================
@ECHO Завершена очистка скаченных файлов из Installer
rem ===============================================



rem ================================================
@ECHO Очистка скаченных файлов из %windir%\Temp\*
del /f /s /q "%windir%\Temp\*.*"
rem ===============================================
@ECHO Очистка скаченных файлов из %SYSTEMDRIVE%\Temp\*
del /f /s /q "%SYSTEMDRIVE%\Temp\*.*"
rem ===============================================
@ECHO Завершена очистка скаченных файлов
rem ================================================
@ECHO Очистка корзины в Windows 7
rd /s /q %SYSTEMDRIVE%\$Recycle.bin
rem ===============================================
@ECHO Очистка корзины в Windows XP:
rd /s /q %SYSTEMDRIVE%\recycler
rem ===============================================
@ECHO Очистка корзины :
Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Recycle Bin" /v StateFlags0001 /t REG_DWORD /d 2 /f
Reg Delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Compress old files" /f
Cleanmgr /sagerun:1
rem ===============================================
@ECHO Завершена очистка корзины
rem ================================================
@ECHO Очистка очереди печати
net stop spooler
del /f /q %systemroot%\system32\spool\printers\*.shd
del /f /q %systemroot%\system32\spool\printers\*.spl
net start spooler
rem ===============================================
@ECHO Завершена очистка очереди печати
rem ================================================
@ECHO Удаление учетных данных XP
pushd && (rmdir /s /q "%SYSTEMDRIVE%\Documents and Settings\ivan") 2>nul
pushd && (rmdir /s /q "%SYSTEMDRIVE%\Documents and Settings\ivan.lvov") 2>nul
ushd && (rmdir /s /q "%SYSTEMDRIVE%\Documents and Settings\romazver") 2>nul

если можете, помогите еще начало сократить, и посоветуйте чего не хватает.

3

Re: CMD/BAT: уменьшить код батника оставив рабочим

Перебирать каждую папку хотфиксов не самый лучший способ, не находите? Поробуйте в консоли задать:

dir /a:hd %windir%

Вполне очевидно, что все можно свести к пакетной обработке за счет цикла. В той же консоли для наглядности посмотрите на вывод команды:

for /f "tokens=4" %i in ('dir /a:hd ^| findstr /ir $Nt') do @echo %windir%\%i

Таким образом:
1)отпадает необходимость в ручном вводе большого количества текста;
2)ужимается код;
Словом, количество телодвижений будет минимальным. С остальным, полагаю, разберетесь самостоятельно.

4

Re: CMD/BAT: уменьшить код батника оставив рабочим

как найти все файлы MSI по заголовку (именно по заголовку, а не по названию) и присвоить им атрибут "только чтение"?

5

Re: CMD/BAT: уменьшить код батника оставив рабочим

temich_, что есть в Вашем понимании «заголовок файла MSI» и чем сие отличается от «названия»? Мне незнаком ни тот, ни другой термин.

6

Re: CMD/BAT: уменьшить код батника оставив рабочим

temich_, укажите на примере приложенного скриншота, где этот самый "заголовок".

7 (изменено: temich_, 2014-03-29 16:35:50)

Re: CMD/BAT: уменьшить код батника оставив рабочим

вот заголовок о котором я говорю

8

Re: CMD/BAT: уменьшить код батника оставив рабочим

Т. о., перефразируем задачу: «найти все файлы с расширением ".msi" по заданному "Заголовку" (Windows XP) или по заданному "Названию" (Windows 7) и присвоить им атрибут "Только чтение"».

"Копаться" в бинарных файлах — не "занятие" для пакетных файлов, но, тем не менее...

Испытайте нижеприведённые варианты. У меня сработали оба, причём, второй быстрее, искал, правда, другое "Название" (другой "Заголовок").

@echo off
for /r "%windir%" %%i in (*.msi) do (
 find /i "Пакет установки RMS"<"%%~i">nul&& (
 echo %%~i
 )
)
pause>nul
exit /b
@echo off
echo Пакет установки RMS>.tmp
for /r "%windir%" %%i in (*.msi) do (
 findstr /ig:".tmp" "%%~i">nul&& (
 echo %%~i
 )
)
del .tmp
pause>nul
exit /b

Если возникнет вопрос, почему второй вариант усложнён временным файлом, то ответ можно найти в теме "CMD_BAT_ findstr и кодировка 1251 (Страница 1) — CMD_BAT — Общение — Серый форум".

Если всё будет успешно, то замените строку:

 echo %%~i

на строку:

 attrib +r "%%~i"

и замените "%windir%", если нужно, на уточнённую директорию.

9

Re: CMD/BAT: уменьшить код батника оставив рабочим


@ECHO Очистка корзины в Windows 7
rd /s /q %SYSTEMDRIVE%\$Recycle.bin
rem ===============================================
@ECHO Очистка корзины в Windows XP:
rd /s /q %SYSTEMDRIVE%\recycler
rem ===============================================
@ECHO Очистка корзины :
Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Recycle Bin" /v StateFlags0001 /t REG_DWORD /d 2 /f

Кстати, а ведь классное решение :-). Думаю, что это гораздо лучше, чем работать с Shell.Application.

10

Re: CMD/BAT: уменьшить код батника оставив рабочим

"Копаться" в бинарных файлах — не "занятие" для пакетных файлов, но, тем не менее...

Угу. Попадётся какая-нибудь зависимость внутри с тем же текстом. Або ещё что.

Тут надо брать «MsiInfo.exe» из комплекта Microsoft Windows Installer 4.5 Software Development Kit, наподобие:

"%ProgramFiles%\Windows Installer 4.5 SDK\TOOLS\MsiInfo.exe" "D:\Install\Microsoft Windows Installer\Microsoft Windows Installer 4.5 Software Development Kit\msi45sdk.msi" /nologo | find.exe /i "[ 2][/t] Title = " | find.exe "Искомый заголовок" >nul && echo Found || echo Not found

11

Re: CMD/BAT: уменьшить код батника оставив рабочим

alexii пишет:

Тут надо брать «MsiInfo.exe» из комплекта Microsoft Windows Installer 4.5 Software Development Kit

msiinfo есть в дистрибутиве Orca, а также WinSDK. По DDK не шарился, но что-то подсказывает что и там оно есть. В WinSDK:

$ for /f "tokens=3,* delims== " %i in ('msiinfo.exe python-3.4.0.msi ^| findstr /r Author') do @echo %j
Python Software Foundation

$ rem или что-то в этом роде...
$ for /f "tokens=2,* delims== " %i in ('msiinfo.exe python-3.4.0.msi ^| findstr /r Application') do @echo %j
Python MSI Library

Понятно, что данные берутся из ресурсов MSI-пакета, так что можно вполне впихнкть в cmd сценарий jscript, разбирающий ресурсы, но это весьма затратное по времени занятие. К слову, помнится есть в COM что-то вроде WindowsInstaller.Installer, может там какие методы имеются для извлечения подобной информации?

JSman пишет:

Думаю, что это гораздо лучше, чем работать с Shell.Application.

Гораздо лучше написать на С что-то вроде:

#include <windows.h>
#include <stdio.h>

#pragma comment(lib, "shell32.lib")

void main() {
  HRESULT res = SHEmptyRecycleBin(NULL, NULL, SHERB_NOCONFIRMATION |
                                SHERB_NOPROGRESSUI | SHERB_NOSOUND);
  if (res != S_OK)
    printf("An error has been occured.");
}

И использовать скомпилированный модуль по мере необходимости.

12

Re: CMD/BAT: уменьшить код батника оставив рабочим

msiinfo есть в дистрибутиве Orca, а также WinSDK.

+ открыть спойлер

Сейчас отдельно ни ORCA, ни Windows Installer SDK на MS для загрузки не предлагаются (это я уже несколько лет храню прямую ссылку на загрузку от Windows Installer 4.5 SDK). А вместо них предлагается загружать именно монструозный Windows SDK.

К слову, помнится есть в COM что-то вроде WindowsInstaller.Installer, может там какие методы имеются для извлечения подобной информации?

Option Explicit

Const msiOpenDatabaseModeReadOnly = 0
Const PID_TITLE = 2

With WScript.CreateObject("WindowsInstaller.Installer")
    With .OpenDatabase("D:\Install\Microsoft Windows Installer\Microsoft Windows Installer 4.5 Software Development Kit\msi45sdk.msi", msiOpenDatabaseModeReadOnly)
        WScript.Echo .SummaryInformation.Property(PID_TITLE)
    End With
End With

WScript.Quit 0

13

Re: CMD/BAT: уменьшить код батника оставив рабочим

alexii пишет:

А вместо них предлагается загружать именно монструозный Windows SDK.

Какбы не msiinfo.exe единым крашен SDK. Есть там еще масса чего интересного, правда наряду с огромным количеством мусора, а потому я предпочитаю обходиться выдранным консольным компиляторм С из VS и парой-тройкой утилит из SDK. msiinfo здесь был лишь к слову.
Что же касается WindowsInsatller.Installer вижу я был прав. На базе Вашего примера можно написать имитацию msiinfo на CMD\JScript:

@set @e=0 /*
  @echo off
    set @e=
    cscript //nologo //e:jscript "%~f0" %1
  exit /b
*/

with (WScript.Arguments) {
  if (length != 1) {
    WScript.echo('Only one pocket can be processed at a time.');
    WScript.Quit(1);
  }
  
  with (new ActiveXObject('WindowsInstaller.Installer')) {
    with (OpenDatabase(Unnamed(0), 0)) {
      var si = SummaryInformation;
      WScript.echo(si.Property(2));  //Title
      WScript.echo(si.Property(3));  //Subject
      WScript.echo(si.Property(4));  //Author
      WScript.echo(si.Property(7));  //Template
      WScript.echo(si.Property(9));  //Revision
      WScript.echo(si.Property(14)); //Pages
      WScript.echo(si.Property(15)); //Words
      WScript.echo(si.Property(18)); //Application
    }
  }
}

14

Re: CMD/BAT: уменьшить код батника оставив рабочим

Какбы не msiinfo.exe единым крашен SDK.

Я и не спорю.