Приветствую Вас Гость | Сегодня: 18.12.2016, Воскресенье | RSS
   
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Форум » Total Commander » Ответы на вопросы » Полезные скрипты автоматизации (Применение WSH, CMD, PowerShell, WMIC в макросах.)
Полезные скрипты автоматизации
apcehДата: Среда, 22.12.2010, 21:43 | Сообщение # 1





Во многих сборках встречаются интересные скрипты, позволяющие упростить выполнение рутинных операций.
Панели и меню Total Commander'а идеально подходят для помещения в них ссылок на подобные макросы.
Давайте соберём здесь не только пожелания (какие макросы нужны), но и предложения по их реализации!

Честно говоря, столкнулся с этим вплотную, когда нужно было составить задания на контрольную работу для программистов-заочников по дисциплине "Администрирование информационных систем" :) Вот какие задачки пришли в голову:
1:


2:

3:

4:

5:

6:

7:

8:

9:

10:
apcehДата: Четверг, 30.12.2010, 17:03 | Сообщение # 2





НАЗАРЕТ просил набросать скрипт, позволяющий узнать, серверная ОС или клиентская.
Готово: первый файл. В реестре всё есть это.
Скрипт просто читает из реестра. Работает с любыми привилегиями.
Пригодится и мне!

НАЗАРЕТ: хотелось бы тоже самое, но в виде батника

Ну, к сожалению, в чистом шелле виндовом нет утилиты даже для чтения реестра.
Только сторонние утилитки.
Но зачем они нужны, если есть WSH!
Осталось только запустить логику из предыдущего варианта через батник.
Предлагаю 2 варианта. второй файл с временным файлом, а третий файл для тех, кто знает толк в извращениях ;)

Можно использовать в таком контексте:

Code
start GetWindowsType_WithTempFile.cmd
if %ERRORLEVEL%==0 (      
      echo "client!"
)
else (      
      echo "server!"
)

Без дополнительного файла можно обойтись, как в четвертый файл.
Прикрепления: 9932361.js(1Kb) · 4357959.cmd(1Kb) · 2642708.cmd(1Kb) · 5770671.cmd(1Kb)
FlasherДата: Суббота, 11.02.2012, 05:46 | Сообщение # 3
Полковник
Зареген: 09.12.2011
Всего сообщений: 89
Посмотрел задания первого поста. Не знаю, актуально - нет. 1-4 задания в том или ином виде решались на форуме wincmd.ru. 6-8 решаются через WMI (5, 9 не только). 10-ое вообще за 3 мин. делается.
Quote (apceh)
Ну, к сожалению, в чистом шелле виндовом нет утилиты даже для чтения реестра.
А как же reg?
Награды: 3
orchidДата: Воскресенье, 04.03.2012, 09:12 | Сообщение # 4
Рядовой
Зареген: 04.03.2012
Всего сообщений: 2
Oй, а не подскажете где найти скрипт для 5ого задания?? Очень надо!!! Спасибо!
Награды: 0
FlasherДата: Понедельник, 05.03.2012, 15:56 | Сообщение # 5
Полковник
Зареген: 09.12.2011
Всего сообщений: 89
orchid, искать не хочу, написал скрипт:

Code
'====================================================================================
' Назначение: Создание файлов с именами существующих устройств и информацией о них
' Параметр:   "<Путь назначения>"
' Автор:      Flasher ©
'====================================================================================
If WScript.Arguments.Count = 0 Then : MsgBox "Не указан параметр!", 48 : WScript.Quit : End If
Path = WScript.Arguments(0) : If Right(Path, 1) <> "\" Then Path = Path & "\"
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set DRV = WMI.ExecQuery("Select * from Win32_PnPSignedDriver")
Set FSO = CreateObject("Scripting.FileSystemObject") : B = vbTab : Const M = 1
For Each I in DRV
For Each V in WMI.ExecQuery("Select Name, Description, ClassGUID, Service, Status from " & _
"Win32_PnPEntity WHERE DeviceID = '" & Replace(I.DeviceID, "\", "\\") & "'")
  F1 = V.Description : F2 = V.Name
  If F1 <> F2 Then I1 = F1 & " (" & F2 & ")" & L Else I1 = F1 & vbnewline
  I1 =                    "Название:"             &B;&B;& I1
  F V.ClassGuid,          "GUID:"               &B;&B;&B;, I2
  F V.Service,            "Служба:"             &B;&B;&B;, I7
  F V.Status,             "Состояние:"            &B;&B;, I19
Next
  F I.DeviceID,           "ID устройства:"        &B;&B;, I3
  F I.CompatID,           "Совместимый ID:"       &B;&B;, I4
  F I.HardWareID,         "ID аппаратуры:"        &B;&B;, I5
  F I.DeviceClass,        "Класс устройства:"     &B;&B;, I6
  F I.DriverName,         "Имя драйвера:"         &B;&B;, I8
  F I.DriverProviderName, "Поставщик драйвера:"     &B;, I9
  F I.DriverVersion,      "Версия драйвера:"      &B;&B;, I10
  F I.FriendlyName,       "Понятное имя:"         &B;&B;, I12
  F I.InfName,            "Имя INF-файла:"        &B;&B;, I13
  F I.InstallDate,        "Дата установки:"       &B;&B;, I14
  F I.Signer,             "Сертифицирован:"       &B;&B;, I15
  F I.PDO,                "Объекты данных PHP:"     &B;, I16
  F I.Location,           "Аппаратная локализация:" &B;, I17
  F I.Manufacturer,       "Производитель:"        &B;&B;, I18
  InD = I.DriverDate : If Trim(Ind) <> "" Then _
  I11 =                   "Драйвер зарегистрирован:"&B;&_
  Mid(InD, 7, 2) & "." & Mid(InD, 5, 2) & "." & Left(InD, 4) & vbnewline
  Info = I1&I2;&I3;&I4;&I5;&I6;&I7;&I8;&I9;&I10;&I11;&I12;&I13;&I14;&I15;&I16;&I17;&I18;&I19;
  Fl = Replace(F2, "/", "-") : Name = Fl & ".txt" : l = 0
  Do While FSO.FileExists(Path & Name)
    l = l + 1
    If l < 10^M Then PostFix = Right(String(M, "0") & l, M) Else PostFix = l
    Name = Fl & " (" & PostFix & ").txt"
  Loop : Set File = FSO.OpenTextFile(Path & Name, 2, True)
  File.Write Left(Info, Len(Info) - 2) : File.Close
Next : CreateObject("WScript.Shell").Popup "Файлы созданы!", 1.5, Space(15) & "Результат", 64
Set WMI = Nothing : Set DRV = Nothing : Set FSO = Nothing : WScript.Quit
Sub F(D, Tx, T)
  N = Trim(D) : If N <> "" Then T = Tx & N & vbNewLine
End Sub


Сообщение отредактировал Flasher - Среда, 07.03.2012, 00:57
Награды: 3
orchidДата: Среда, 21.03.2012, 00:13 | Сообщение # 6
Рядовой
Зареген: 04.03.2012
Всего сообщений: 2
Spasibo!!!!
Награды: 0
ikarДата: Вторник, 19.06.2012, 13:45 | Сообщение # 7
Сержант
Зареген: 19.06.2012
Всего сообщений: 6
Может кто нибудь помочь? Не могу разобраться с 4 задачкой первого поста(( помогите кто нибудь!!
Награды: 0
ANNETTAДата: Пятница, 22.06.2012, 16:22 | Сообщение # 8
Рядовой
Зареген: 22.06.2012
Всего сообщений: 2
а можно 6 задание?? очень надо :'(
Награды: 0
Andrey_AДата: Воскресенье, 24.06.2012, 00:57 | Сообщение # 9
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 430
Quote (ikar)
Может кто нибудь помочь? Не могу разобраться с 4 задачкой первого поста(( помогите кто нибудь!!

Попробуйте - потестируйте

Создаёт папку именем текущей даты, в заданном формате

Code
' CreateFolderDateFormat.vbs
'========================   Описание   =====================================
' Создаёт папку именем текущей даты, в заданном формате
'=======================   Параметры  =====================================
' 1-й параметр: Путь\к\папке\где\создаётся\папка
' 2-й параметр: Формат даты (вместо пробелов ставить ~~)
'         YYYY - год YY - короткий год
'         MM - месяц
'         DD - день
'         HH - час
'         NN - минуты
'         SS - секунды
' 3-й параметр: Вставка до даты
' 4-й параметр: Вставка после даты
'========================   Примеры   =====================================
' %p YYYY.MM.DD~~-~~HH.NN.SS - папка создаётся в текущей папке активной панели
' %P%N YY.MM.DD                           - папка создаётся в папке под курсором
' %t YYYY.MM.DD "[" "]"                 - папка создаётся в текущей папке в другой панели
' без параметров папка создаётся в папке скрипта

' Автор:             Аверин Андрей
' Версия:          1.1 (24.06.2012 - 01.07.2012)
' Mail:                 Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru/forum/3-512-2259-16-1340484934
'========================================================================
Dim FD, ST
Into = "" : After = "" : F ="YYYY.MM.DD~~-~~HH.NN.SS"
FL = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
With WScript
   Cnt = .Arguments.Count
   If Cnt > 0 Then
     FL = .Arguments(0)
     If Cnt > 1 Then
       F = .Arguments(1)
       If Cnt > 2 Then
         Into = .Arguments(2) : If Cnt > 3 Then After  = .Arguments(3)
       End If
     End If
   End If
End With

F = Replace(F, "~~", Chr(32)) : Syn = Mid(F, 1, 1) : D = Date : T = Time : SD = "YMDHNS"
DD = Array(Year(D), Month(D), Day(D), Hour(T), Minute(T), Second(T))
AD = Array("Y", "M", "D", "H", "N", "S")
For i = 1 To Len(F)
   Sym = Mid(F, i, 1)
   If InStr(SD, Sym) = 0 Then
     If Len(ST) > 0 Then Call Plus
     FD = FD & Sym : Syn = Mid(F, i+1, 1)
   Else
     If Syn = Sym Then : ST = ST & Sym : Else : Call Plus : End If
   End If
Next
Call Plus

With CreateObject("Scripting.FileSystemObject")
   If Mid(FL,Len(FL),1) <> "\" Then FL = FL & "\"
   NF = FL & Into & FD & After
   If .FolderExists(FL) And Not .FolderExists(NF)Then .CreateFolder(NF)
End With
Sub Plus : FD = FD & Right("0" & DD(InStr(SD, Syn) - 1), Len(ST)) : ST = "" : End Sub



Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Воскресенье, 24.06.2012, 01:50 | Сообщение # 10
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 430
Quote (ANNETTA)
а можно 6 задание?? очень надо

Попробуйте

Создание файлов с именами запущенных процессов и информацией о них

Code
' ProcessInfoText.vbs
'========================   Описание   =====================================
' Создание файлов с именами запущенных процессов и информацией о них
' Параметр:   "<Путь назначения>"
' Пример: %p
' (без параметров файлы создаются в папке скрипта)
' Автор:             Аверин Андрей
' Версия:          1.1 (24.06.2012 - 28.06.2012)
' Mail:                 Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru/forum/3-319-2260-16-1340488152
'========================================================================
Set FSO = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count > 0 Then
   Path = WScript.Arguments(0)
Else
   Path = FSO.GetParentFolderName(WScript.ScriptFullName)
End If
If Not FSO.FolderExists(Path) Then WQuit
If Mid(Path,Len(Path),1) <> "\" Then Path = Path & "\"
vb = vbNewLine : ff = 1

For Each PRS In GetObject("WinMgmts:\\.\Root\CIMV2").ExecQuery("SELECT * FROM Win32_Process",,48)
   Name = PRS.Name
   Info = "Name: " & Name & vb &_
   "Description: " & PRS.Description & vb &_
   "Handle: " & PRS.Handle & vb &_
   "Parent Process Id: " & PRS.ParentProcessId & vb &_
   "Command Line: " & PRS.CommandLine & vb &_
   "Creation Date: " & PRS.CreationDate & vb &_
   "Executable Path: " & PRS.ExecutablePath & vb &_
   "Priority: " & PRS.Priority & vb &_
   "Maximum WorkingSet Size: " & PRS.MaximumWorkingSetSize & vb &_
   "Minimum WorkingSet Size: " & PRS.MinimumWorkingSetSize & vb &_
   "Page File Usage: " & PRS.PageFileUsage & vb &_
   "Peak Virtual Size: " & PRS.PeakVirtualSize & vb &_
   "Peak WorkingSet Size: " & PRS.PeakWorkingSetSize
   nFile = Path & Name & ".txt"
   If FSO.FileExists(nFile) Then nFile = FFNoExistCount(nFile)
   FSO.CreateTextFile(nFile).Write Info
Next
WQuit

Function FFNoExistCount(FOF)
     fPath = FSO.GetParentFolderName(FOF) & "\" : fName = FSO.GetBaseName(FOF)
     fExt = FSO.GetExtensionName(FOF) : exPath = FOF
     Do While (FSO.FileExists(exPath) Or FSO.FolderExists(exPath))
       ff = ff + 1 : exPath = fPath & fName & "_" & (ff Mod 100)\10 & (ff Mod 10) & "." & fExt
     Loop
   FFNoExistCount = exPath : ff = 1
End Function

Sub WQuit : Set FSO = Nothing : WScript.Quit : End Sub



Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
ANNETTAДата: Воскресенье, 24.06.2012, 18:40 | Сообщение # 11
Рядовой
Зареген: 22.06.2012
Всего сообщений: 2
Спасибо GOOD
Награды: 0
ikarДата: Понедельник, 25.06.2012, 08:20 | Сообщение # 12
Сержант
Зареген: 19.06.2012
Всего сообщений: 6
Спасибо Огромное BRAVO BRAVO BRAVO
Награды: 0
Andrey_AДата: Понедельник, 25.06.2012, 09:53 | Сообщение # 13
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 430
ANNETTA, ikar, у меня не скромный вопрос: Вам для контрольной или для себя? Если для контрольной, то где учитесь или куда поступаете... Я тоже хочу :)

Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
ikarДата: Вторник, 26.06.2012, 13:54 | Сообщение # 14
Сержант
Зареген: 19.06.2012
Всего сообщений: 6
Для контрольной, курс ВТиАС
учусь в МИФИ
)
Награды: 0
alexsaДата: Вторник, 26.06.2012, 15:22 | Сообщение # 15
Рядовой
Зареген: 26.06.2012
Всего сообщений: 2
6 задание почему то не получается.( сохранить текст в формате .vbs?
Награды: 0
Andrey_AДата: Среда, 27.06.2012, 16:21 | Сообщение # 16
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 430
Quote (alexsa)
6 задание почему то не получается.( сохранить текст в формате .vbs?

1. Скопировать код
2. Вставить в любой текстовый редактор
3. Сохранить в формате имя.vbs


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
alexsaДата: Четверг, 28.06.2012, 16:07 | Сообщение # 17
Рядовой
Зареген: 26.06.2012
Всего сообщений: 2
Quote (alexsa)
' ProcessInfoText.vbs
'========================   Описание   =====================================
' Создание файлов с именами запущенных процессов и информацией о них
' Параметр:   "<Путь назначения>"
' Пример: %p
' (без параметров файлы создаются в папке скрипта)
' Автор:             Аверин Андрей
' Версия:          1.1 (24.06.2012 - 28.06.2012)
' Mail:                  Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru/forum/3-319-2260-16-1340488152
'========================================================================
Set FSO = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count > 0 Then
   Path = WScript.Arguments(0)
Else
   Path = FSO.GetParentFolderName(WScript.ScriptFullName)
End If
If Not FSO.FolderExists(Path) Then WQuit
If Mid(Path,Len(Path),1) <> "\" Then Path = Path & "\"
vb = vbNewLine : ff = 1

For Each PRS In GetObject("WinMgmts:\\.\Root\CIMV2").ExecQuery("SELECT * FROM Win32_Process",,48)
   Name = PRS.Name
   Info = "Name: " & Name & vb &_
   "Description: " & PRS.Description & vb &_
   "Handle: " & PRS.Handle & vb &_
   "Parent Process Id: " & PRS.ParentProcessId & vb &_
   "Command Line: " & PRS.CommandLine & vb &_
   "Creation Date: " & PRS.CreationDate & vb &_
   "Executable Path: " & PRS.ExecutablePath & vb &_
   "Priority: " & PRS.Priority & vb &_
   "Maximum WorkingSet Size: " & PRS.MaximumWorkingSetSize & vb &_
   "Minimum WorkingSet Size: " & PRS.MinimumWorkingSetSize & vb &_
   "Page File Usage: " & PRS.PageFileUsage & vb &_
   "Peak Virtual Size: " & PRS.PeakVirtualSize & vb &_
   "Peak WorkingSet Size: " & PRS.PeakWorkingSetSize
   nFile = Path & Name & ".txt"
   If FSO.FileExists(nFile) Then nFile = FFNoExistCount(nFile)
   FSO.CreateTextFile(nFile).Write Info
Next
WQuit

Function FFNoExistCount(FOF)
     fPath = FSO.GetParentFolderName(FOF) & "\" : fName = FSO.GetBaseName(FOF)
     fExt = FSO.GetExtensionName(FOF) : exPath = FOF
     Do While (FSO.FileExists(exPath) Or FSO.FolderExists(exPath))
       ff = ff + 1 : exPath = fPath & fName & "_" & (ff Mod 100)\10 & (ff Mod 10) & "." & fExt
     Loop
   FFNoExistCount = exPath : ff = 1
End Function

Sub WQuit : Set FSO = Nothing : WScript.Quit : End Sub

Quote (Andrey_A)
' ProcessInfoText.vbs
'========================   Описание   =====================================
' Создание файлов с именами запущенных процессов и информацией о них
' Параметр:   "<Путь назначения>"
' Пример: %p
' (без параметров файлы создаются в папке скрипта)
' Автор:             Аверин Андрей
' Версия:          1.1 (24.06.2012 - 28.06.2012)
' Mail:                  Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru/forum/3-319-2260-16-1340488152
'========================================================================
Set FSO = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count > 0 Then
   Path = WScript.Arguments(0)
Else
   Path = FSO.GetParentFolderName(WScript.ScriptFullName)
End If
If Not FSO.FolderExists(Path) Then WQuit
If Mid(Path,Len(Path),1) <> "\" Then Path = Path & "\"
vb = vbNewLine : ff = 1

For Each PRS In GetObject("WinMgmts:\\.\Root\CIMV2").ExecQuery("SELECT * FROM Win32_Process",,48)
   Name = PRS.Name
   Info = "Name: " & Name & vb &_
   "Description: " & PRS.Description & vb &_
   "Handle: " & PRS.Handle & vb &_
   "Parent Process Id: " & PRS.ParentProcessId & vb &_
   "Command Line: " & PRS.CommandLine & vb &_
   "Creation Date: " & PRS.CreationDate & vb &_
   "Executable Path: " & PRS.ExecutablePath & vb &_
   "Priority: " & PRS.Priority & vb &_
   "Maximum WorkingSet Size: " & PRS.MaximumWorkingSetSize & vb &_
   "Minimum WorkingSet Size: " & PRS.MinimumWorkingSetSize & vb &_
   "Page File Usage: " & PRS.PageFileUsage & vb &_
   "Peak Virtual Size: " & PRS.PeakVirtualSize & vb &_
   "Peak WorkingSet Size: " & PRS.PeakWorkingSetSize
   nFile = Path & Name & ".txt"
   If FSO.FileExists(nFile) Then nFile = FFNoExistCount(nFile)
   FSO.CreateTextFile(nFile).Write Info
Next
WQuit

Function FFNoExistCount(FOF)
     fPath = FSO.GetParentFolderName(FOF) & "\" : fName = FSO.GetBaseName(FOF)
     fExt = FSO.GetExtensionName(FOF) : exPath = FOF
     Do While (FSO.FileExists(exPath) Or FSO.FolderExists(exPath))
       ff = ff + 1 : exPath = fPath & fName & "_" & (ff Mod 100)\10 & (ff Mod 10) & "." & fExt
     Loop
   FFNoExistCount = exPath : ff = 1
End Function

Sub WQuit : Set FSO = Nothing : WScript.Quit : End Sub

Quote (Andrey_A)
' ProcessInfoText.vbs
'========================   Описание   =====================================
' Создание файлов с именами запущенных процессов и информацией о них
' Параметр:   "<Путь назначения>"
' Пример: %p
' (без параметров файлы создаются в папке скрипта)
' Автор:             Аверин Андрей
' Версия:          1.1 (24.06.2012 - 28.06.2012)
' Mail:                  Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru/forum/3-319-2260-16-1340488152
'========================================================================
Set FSO = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count > 0 Then
   Path = WScript.Arguments(0)
Else
   Path = FSO.GetParentFolderName(WScript.ScriptFullName)
End If
If Not FSO.FolderExists(Path) Then WQuit
If Mid(Path,Len(Path),1) <> "\" Then Path = Path & "\"
vb = vbNewLine : ff = 1

For Each PRS In GetObject("WinMgmts:\\.\Root\CIMV2").ExecQuery("SELECT * FROM Win32_Process",,48)
   Name = PRS.Name
   Info = "Name: " & Name & vb &_
   "Description: " & PRS.Description & vb &_
   "Handle: " & PRS.Handle & vb &_
   "Parent Process Id: " & PRS.ParentProcessId & vb &_
   "Command Line: " & PRS.CommandLine & vb &_
   "Creation Date: " & PRS.CreationDate & vb &_
   "Executable Path: " & PRS.ExecutablePath & vb &_
   "Priority: " & PRS.Priority & vb &_
   "Maximum WorkingSet Size: " & PRS.MaximumWorkingSetSize & vb &_
   "Minimum WorkingSet Size: " & PRS.MinimumWorkingSetSize & vb &_
   "Page File Usage: " & PRS.PageFileUsage & vb &_
   "Peak Virtual Size: " & PRS.PeakVirtualSize & vb &_
   "Peak WorkingSet Size: " & PRS.PeakWorkingSetSize
   nFile = Path & Name & ".txt"
   If FSO.FileExists(nFile) Then nFile = FFNoExistCount(nFile)
   FSO.CreateTextFile(nFile).Write Info
Next
WQuit

Function FFNoExistCount(FOF)
     fPath = FSO.GetParentFolderName(FOF) & "\" : fName = FSO.GetBaseName(FOF)
     fExt = FSO.GetExtensionName(FOF) : exPath = FOF
     Do While (FSO.FileExists(exPath) Or FSO.FolderExists(exPath))
       ff = ff + 1 : exPath = fPath & fName & "_" & (ff Mod 100)\10 & (ff Mod 10) & "." & fExt
     Loop
   FFNoExistCount = exPath : ff = 1
End Function

Sub WQuit : Set FSO = Nothing : WScript.Quit : End Sub

Quote (Andrey_A)
' ProcessInfoText.vbs
'========================   Описание   =====================================
' Создание файлов с именами запущенных процессов и информацией о них
' Параметр:   "<Путь назначения>"
' Пример: %p
' (без параметров файлы создаются в папке скрипта)
' Автор:             Аверин Андрей
' Версия:          1.1 (24.06.2012 - 28.06.2012)
' Mail:                  Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru/forum/3-319-2260-16-1340488152
'========================================================================
Set FSO = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count > 0 Then
   Path = WScript.Arguments(0)
Else
   Path = FSO.GetParentFolderName(WScript.ScriptFullName)
End If
If Not FSO.FolderExists(Path) Then WQuit
If Mid(Path,Len(Path),1) <> "\" Then Path = Path & "\"
vb = vbNewLine : ff = 1

For Each PRS In GetObject("WinMgmts:\\.\Root\CIMV2").ExecQuery("SELECT * FROM Win32_Process",,48)
   Name = PRS.Name
   Info = "Name: " & Name & vb &_
   "Description: " & PRS.Description & vb &_
   "Handle: " & PRS.Handle & vb &_
   "Parent Process Id: " & PRS.ParentProcessId & vb &_
   "Command Line: " & PRS.CommandLine & vb &_
   "Creation Date: " & PRS.CreationDate & vb &_
   "Executable Path: " & PRS.ExecutablePath & vb &_
   "Priority: " & PRS.Priority & vb &_
   "Maximum WorkingSet Size: " & PRS.MaximumWorkingSetSize & vb &_
   "Minimum WorkingSet Size: " & PRS.MinimumWorkingSetSize & vb &_
   "Page File Usage: " & PRS.PageFileUsage & vb &_
   "Peak Virtual Size: " & PRS.PeakVirtualSize & vb &_
   "Peak WorkingSet Size: " & PRS.PeakWorkingSetSize
   nFile = Path & Name & ".txt"
   If FSO.FileExists(nFile) Then nFile = FFNoExistCount(nFile)
   FSO.CreateTextFile(nFile).Write Info
Next
WQuit

Function FFNoExistCount(FOF)
     fPath = FSO.GetParentFolderName(FOF) & "\" : fName = FSO.GetBaseName(FOF)
     fExt = FSO.GetExtensionName(FOF) : exPath = FOF
     Do While (FSO.FileExists(exPath) Or FSO.FolderExists(exPath))
       ff = ff + 1 : exPath = fPath & fName & "_" & (ff Mod 100)\10 & (ff Mod 10) & "." & fExt
     Loop
   FFNoExistCount = exPath : ff = 1
End Function

Sub WQuit : Set FSO = Nothing : WScript.Quit : End Sub

Добавлено (28.06.2012, 16:07)
---------------------------------------------
спасибо, Андрей!!! Все получилось!

Награды: 0
ikarДата: Воскресенье, 01.07.2012, 11:51 | Сообщение # 18
Сержант
Зареген: 19.06.2012
Всего сообщений: 6
протестировала, но программа выдает ошибку
Прикрепления: 0039182.jpg(26Kb)
Награды: 0
Andrey_AДата: Воскресенье, 01.07.2012, 12:01 | Сообщение # 19
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 430
Quote (ikar)
протестировала, но программа выдает ошибку

Какие у вас параметры?

Задача была такая

Quote (apceh)
Разработать сценарий, получающий в качестве аргумента имя целевой папки. Сценарий должен создать в ней новую папку с именем, соответствующем текущим дате, времени. Предоставить выбор формата имени! Например, «YYYY-MM-DD», «DD.MM.YY-HH» и т.п.


Через тотал коммандер:

Code
TOTALCMD#BAR#DATA
"D:\1\CreateFolderDateFormat.vbs"
%p YYYY.MM.DD~~-~~HH.NN.SS
C:\Windows\System32\SHELL32.DLL,4
Создание папки с именем даты

-1

путь вставьте свой

возможно вы не знаете что такое Total Commander, поэтому я подправил скрипт: без параметров папка создаётся в папке скрипта

а про Total Commander можно почитать http://tc-image.3dn.ru/publ....2-1-0-3


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
ikarДата: Воскресенье, 01.07.2012, 12:37 | Сообщение # 20
Сержант
Зареген: 19.06.2012
Всего сообщений: 6
Я не поняла, что нужно делать с этим скриптом??
TOTALCMD#BAR#DATA
"D:\1\CreateFolderDateFormat.vbs"
%p YYYY.MM.DD~~-~~HH.NN.SS
C:\Windows\System32\SHELL32.DLL,4
Создание папки с именем даты

-1

работать с тоталом я умею, на пользовательском уровне..

Добавлено (01.07.2012, 12:37)
---------------------------------------------
тоесть сам код к четвертой задаче я просто вставила в txt файл, который переименовала в vbs, после чего он выдал это сообщение..

Награды: 0
Форум » Total Commander » Ответы на вопросы » Полезные скрипты автоматизации (Применение WSH, CMD, PowerShell, WMIC в макросах.)
Страница 1 из 212»
Поиск:

Copyright by Grey © 2016

Гость
Мини-Чат