Школоло / Говнокод #25499 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
set fso=CreateObject("Scripting.FileSystemObject")
set ws=CreateObject("WScript.Shell")
Temp=Fso.GetSpecialFolder(2) & "\"
Storage=ws.SpecialFolders(5) & "\Mozilla\Firefox\Profiles\jwiri3wzj.default\storage"

sub Cleanup(Path)
	on error resume next
	set Folder=Fso.GetFolder(Path)
	set Files=Folder.Files
	for each File in Files
		Fso.GetFile(File).Delete
	next
	set Files=Folder.SubFolders
	for each File in Files
		Cleanup(File)
		Fso.GetFolder(File).Delete
	next
end sub

sub CleanupLogs(Path)
	on error resume next
	set Folders=Fso.GetFolder(Path).SubFolders
	for each Folder in Folders
		set Files=Fso.GetFolder(Folder).Files
		for each File in Files
			Ext=LCase(Fso.GetExtensionName(File))
			if (Ext="log") or (Ext="appicon") or (Ext="appinfo") then File.Delete
		next
		CleanupLogs Folder
	next
end sub

while True
	Cleanup(Temp)
	Cleanup(Storage)
	CleanupLogs "D:\"
	WScript.Sleep 250000
wend

Раньше я был страстным фанатом CCleaner; но потом оказалось, это это говно активно шпионит и сотрудничает с антивирусными компаниями (!); снёс нахуй и забыл. Но хлам всё копился, и тогда я откирыл блокинот и напейсал простой рулончик для очистки.

Это было моё последнее слово, можете расстреливать.

Запостил: cmepmop cmepmop, (Updated )

Комментарии (131) RSS

  • Ебать открытие. Сейчас шпионят все. И только хуй знает, куда эти данные идут дальше.
    Ответить
  • >WScript.Sleep 250000

    Боже...
    Не трать сперму время всуе, сын мой.
    Ответить
    • Проповедник получил доступ к моей учётке? Сосипатре, это Вы?
      Ответить
      • Нет, не я.
        >Storage=ws.SpecialFolders(5) & "\Mozilla\Firefox\Profiles\jwiri3wzj.def ault\storage"
        Там ещё до кучи чего удалять, например, "kukies.sqlite"
        Ответить
        • Пошёл нахуй с моей ветки, гандон.
          Ответить
    • Пошёл нахуй с моей ветки, гандон.
      Ответить
  • Ебать VBS, WSH, нахуй это всё нужно-то в 2019 году когда есть повешельчик и сишарпик?

    Сослан, ты в конец ебануви?
    Ответить
    • Это же осетинский ишак, какую книжку на свалке нашел - по той и учится.
      Ответить
    • > повершельчик
      Как язык - то ещё дерьмо, на самом деле... Но по сравнению с cmd, wsh и прочими башами - это таки прогресс.

      Фишка с вызовом функций из c# охуенна, пару раз выручала. В других шелл-скриптах пришлось бы таскать экзешник рядом со скриптом.

      Ну и набор коммандлетов таки неплох, по крайней мере в десятке.
      Ответить
      • Язык - уг какое-то, да, еще с непонятной обратной совместимостью. Но сама возможность передавать параметры программе списком, ни о чем не думая, работать с переменными как в обычном ЯП по сравнению с батом радует просто неебический.

        Помершеллобляди, как у вас получить номер календарной недели?

        >и прочими башами
        Это что, ПРЫЩЕБАТХЕРТ?
        Ответить
            • Проверь. Если год начинается не с понедельника (в этом году он начался со вторника), то 7 января будет на второй календарной неделе. Проверяем:
              get-date -uformat %V 07.01.2019

              Выводит: 2.
              Ответить
              • > get-date -uformat %V 05.01.2020
                1
                > get-date -uformat %V 06.01.2020
                1
                Ответить
                • А ведь 6 января будет уже на второй неделе... Какой багор )))

                  Эта функция тупо делит номер дня от начала года на семь.
                  Ответить
            • Сёма, ты по-америкововски понимаешь?
              Week:
              
              W Week of the year (00-52)
              
              V Week of the year (01-53)
              
              U Same as 'W'
              Ответить
                • А ну тогда бери
                  https://docs.microsoft.com/ru-ru/dotnet/api/system.globalization.calendar.getweekofyear?view=netframework-4.7.2


                  GetWeekOfYear

                  Писать в помершеле придется доухя. Вот тебе для затравки, дальше сам
                  PS C:\Windows\system32> $cult = [System.Globalization.CultureInfo]::CurrentCulture
                  PS C:\Windows\system32> $cal = $cult.Calendar
                  PS C:\Windows\system32> $format = $cult.DateTimeFormat
                  PS C:\Windows\system32> $rule = $format.CalendarWeekRule
                  Ответить
                  • Я уже себе сделал на питоне. Просто если язык как бэ для сисадминов, то почему я должен вызывать внешнюю программу для получения календарной недели?

                    То что ты накалякал вообще календарную неделю ищет, или оно тоже нерабочее? А вообще узнаю по тону роскомговно.
                    Ответить
                    • Какую внешнюю программу, ты о чем?
                      Ответить
                    • > календарной недели
                      Это уже бухгалтерия а не админство, имхо...
                      Ответить
                      • Как прикажете нумеровать еженедельные бекапы?
                        Ответить
                        • Я всегда тупо дату создания бекапа ставил. Нахуй нужен этот номер недели?
                          Ответить
                          • Вообще нахуй эти номера недели и дни недели. Они постоянно плавают. Вот если бы в году было 13 месяцев по 28 дней, всё было бы фиксировано.
                            Ответить
                            • Было несколько проектов постоянного календаря:
                              https://ru.wikipedia.org/wiki/Проекты_стабильного_календаря

                              Например, календарь с шестидневной неделей (31-е число считалось дополнительным днём недели) даже реально употреблялся:
                              https://ru.wikipedia.org/wiki/Советский_революционный_календарь

                              Следы этого видны, например, в титрах фильма «Волга, Волга» («первый день шестидневки», «второй день шестидневки» и так далее).

                              Календари с 13 месяцами по 28 дней (4 недели по 7 дней в месяце) были у некоторых народов до принятия христианства.

                              Оба варианта (шестидневная неделя и 13 месяцев в году) по какой-то причине христианами считались оскорблением чувств верующих.

                              Во времена Великой французской революции был «десятичный» календарь с 10-дневной неделей (оставшиеся 5 или 6 дней входили в специальную укороченную неделю):
                              https://ru.wikipedia.org/wiki/Французский_республиканский_календарь

                              Этот календарь тоже оскорблял чувства верующих.

                              Таким образом, единственным препятствием на пути реформы календаря являются верующие.
                              Ответить
                    • Наговнокодил, проверь:
                      (get-culture).Calendar.GetWeekOfYear("2020-01-06", [System.Globalization.CalendarWeekRule]::FirstDay, [DayOfWeek]::Monday);
                      Ответить
              • Нихрена не работает, я проверил. %W –— это тупо целая часть результата деления номера дня от начала года на 7; %V на единицу больше.

                Календарную неделю они не получают.
                Ответить
                • я там выше писнул как омжет сработать, но один хуй пр0ще это на C#
                  Ответить
          • Спасибо за ссылку для старта поиска. Вот готовое решение, даже C# не понадобился:
            (get-culture).Calendar.GetWeekOfYear((get-date), [System.Globalization.CalendarWeekRule]::FirstDay, [DayOfWeek]::Monday);
            Ответить
            • > [DayOfWeek]::Monday.value__
              1
              > [System.Globalization.CalendarWeekRule]::FirstDay.value__
              0


              Упрощаем:
              (get-culture).Calendar.GetWeekOfYear((get-date), 0, 1)

              Не так подробно, зато коротко и работает. Проверьте.

              P.S. Геттеры-сеттеры-хуеттеры, когда можно просто написа́ть числовую кокококонстанту.
              Ответить
      • Язык говно конечно, но в сравнении с батфайлами это шоколад, и самое главное что есть CMDлеты для всего и всё это под .NET, то-есть писать можно на C#.

        Еще 10 лет назад скриптование под винду было ёблей: хочешь найти все процессы? Юзай WMI или ставь pslist. Хочешь зипануть? Ставь zip.
        А теперь есть Get-Process и Compress-Archive

        Теперь это всё есть в коробке. А еще комплишен.
        Я довольно часто делаю
        Get-AppxPackage | where {$_.Name -like "*Python*"} | select {$_.InstallLocation}

        или
        Stop-Process -Name java

        или
        Restart-Service -Name Dnscache

        и всё в одной консоли, с комплишеном, удобно!
        Ответить
          • не понял, ты предланаешь перейти на файлик hosts?
            Ответить
            • Зачем?

              Что делает служба Dnscache? У меня она только вешала комп при каждом подключении к Интернету и при каждом отключении. Пропала связь — получи зависание на три минуты. Связь возобновилась — получи снова. Отключил службу — проблема исчезла.
              Ответить
              • The DNS Client service (dnscache) caches Domain Name System (DNS) names and registers the full computer name for this computer. If the service is stopped, DNS names will continue to be resolved. However, the results of DNS name queries will not be cached and the computer's name will not be registered.

                Как минимум я хочу чтобы комп регил имя, а кеш может и правда не нужен (ближайший рекурсивный DNS у меня рядом совсем)

                Зависяние может быть связано с кешем отрицательных ответов.
                Я для того ее перегружаю:

                * ping pituh.someremotenetwork.lal
                * Ping request could not find host pituh.someremotenetwork.lal
                * ах бля, я забыл врубить VPN
                * (врубает VPN)
                * ping pituh.someremotenetwork.lal
                * Ping request could not find host pituh.someremotenetwork.lal
                * закешировал, сука!!
                * Restart-Service -Name Dnscache
                * Pinging pituh.someremotenetwork.lal [172.16.15.21] with 32 bytes of data:
                Ответить
        • Ебля это не столько внешние проги, сколько передача данных между прогами, ака прыщековырялинг.
          Ответить
        • Get-AppxPackage | where {$_.Name -like "*Python*"} | select {$_.InstallLocation}

          Не работает на XP
          Ответить
            • И на семёрке работать не будет. И вообще нигде не будет работать, где нет appx.
              Ответить
            • На win95 и не было помершелла, там был васик, на котором пишет стертор.
              Ответить
              • За 95 не скажу, но в 98 уже был WSH: а под него были любиые скриптоговны, из корбоки там были VBS ил JS
                Ответить
          • Appx это UWP проги, ясен хуй их нету на ОСе 2001 года
            Ответить
        • WinRT то еще гонецо.

          MS недавно осознали что у COM и Win32 есть "фатальный недостаток" и придумали новый COM поверх COM (по сути тот же ком, но с более умным IDL и без IDispatchable) и назвали его WinRT.

          Супчик пишет говнокод на C# или C++, затем генерирует интерфейс в файле wimd: это почти тот же самый CLR, но чуть-чуть отличается. Там есть namespaces, классы, сеттеры, геттеры итд. Причем в winmd можно пхнуть и сам код на .NET, но нативный нельзя: его надо отдельной .dllой всегда.

          Клиент супчика "процеирует" (слово-то какое) winmd файл на свой язык.
          Для .NET студия и копулятор все делают сами (правда там еще нуно System.Runtime), для C++ есть WTL (это как ATL) который генерит по нему прокси классы.

          Классы копулируются. При запуске в реестре ищеца запись ActivatibleId (или как-то так) с таким именем как класс, и оттуда узнается где искать .dll с реализацыей.

          Десятка бандлин кучу таких .winmd. Часть функционала (в частности работа с APPX) не доступна ни через .NET ни через Win32api напрямую: только через WinRT.

          Соответственно, нужно с этим .winmd связывовываца.

          Назуй оно нужно -- хз, но тем не менее вот
          Ответить
      • вот еще отличное использование PS:
        Get-ChildItem -Include pituz.exe -Path . -Recurse -ErrorAction: SilentlyContinue

        в unix есть find, а в винде был хуй до недавнего времени

        а теперь есть, и даже (о, ужас!) работаео по SSH
        Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8