• Администрация SafeZone приветствует вас на нашем форуме!
    Если вы больше не желаете видеть рекламу при просмотре тем и сообщений - то достаточно просто зарегистрироваться. Для зарегистрированных пользователей реклама не отображается.

VBS Получение количества объектов в папке

Паразит

Пользователь
Сообщения
56
Симпатии
2
#1
Привет.
Как мне сделать простой скрипт, который будет выводить количество объектов в каталоге.

VB.NET:
 set objArgs = WScript.Arguments
 If objArgs.Count <= 0 Then
     WScript.Echo "Я не вижу аргументов"
 else
 objFolder = objArgs(0)
 end if
 'MsgBox objFolder

Set objShellApp = CreateObject("Shell.Application")
Set objItems = objFolder.Items()
Count = objItems.Count
MsgBox objFolder.Self.Path & " " & Count
Или так

VB.NET:
 set objArgs = WScript.Arguments
If objArgs.Count <= 0 Then
     WScript.Echo "Я не вижу аргументов"
else
objFolder = objArgs(0)
'MsgBox objFolder

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.objArgs(0)
Set objItems = objFolder.Items()
Count = objItems.Count
end if
MsgBox objFolder.Self.Path & " " & Count


Как мне создать объект?
 

лис.хвост

VIP
Разработчик
Сообщения
635
Симпатии
1,028
#2
какой, для чего?
посчитать хотите файлы и папки в каталоге? в аргументе путь передаете?

VB.NET:
set objArgs = WScript.Arguments
If objArgs.Count <= 0 Then
     WScript.Echo "Я не вижу аргументов"
else
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = FSO.GetFolder(objArgs(0))

    Count = objFolder.Files.Count + objFolder.SubFolders.Count
end if
MsgBox Count
@Dragokas, ты телепатией владеешь?)
 

Паразит

Пользователь
Сообщения
56
Симпатии
2
#3
Задача такая. Я нахожусь в папке. В ней есть другие папки.
Я нажимаю скрипт, и мне выводится окно с количеством файлов в каждой папке.
На один уровень
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,736
Симпатии
5,640
#4
VB.NET:
Set oFSO = CreateObject("Scripting.FileSystemObject")
sCurFolder = oFSO.GetParentFolderName(WScript.ScriptFullName)

For each oSubFolder in oFSO.GetFolder(sCurFolder).SubFolders
  s = s & oSubFolder.Name & " = " & oSubFolder.Files.Count & vbcrlf
Next

WScript.Echo (s)
Иногда бывает, по чёрным пятницам... Сегодня - пятница -))
 

Паразит

Пользователь
Сообщения
56
Симпатии
2
#6
Dragokas, а как мне обойтись без "WScript." объекта?
Или как мне его создать?
Требует объект
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,736
Симпатии
5,640
#7
лис.хвост, теперь я спрошу, ты экстрасенсом подрабатываешь иногда?

Dragokas, а как мне обойтись без "WScript." объекта?
Странный вопрос. Чтобы обойтись без объекта WScript, нужно перестать пользоваться скриптами VBS/JS.

Его не нужно создавать. Вы уже под ним работаете, после запуска скрипта VBS/JS.
 

Паразит

Пользователь
Сообщения
56
Симпатии
2
#8
Я использую его в хрени, где используются скрипты, и мне пищет, что теребуется объект WScript.
Получается, что я не использую WSH. Эта оснастка работает напрямую с VBScript.
И поэтому необходимо создавать объект, или использовать другой объект.
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,736
Симпатии
5,640
#9
Это из-за последней строки?
Код:
WScript.Echo (s)
Замените на что-то другое. Это только пример. Я ведь не знаю, куда дальше Вам нужно направить переменную s.
Эта строка просто выводит результат на экран.

Ещё есть
Код:
msgbox s
Еще у Popup:
Код:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Popup s,, "Текст заголовка", 4+16
Из-под других языков не получится создать объект WScript.
 
Сверху Снизу