PDA

Показать полную графическую версию : [решено] Создание хардлинков (hardlinks) - не работает скрипт, взятый с MSDN


Noomorph
24-05-2009, 12:17
Если вы хотя бы немножко знаете VBScript, то скорее всего легко справитесь с этой проблемой.
Скрипт не мой! Но он мне очень нужен рабочим.

Скрипт взят отсюда: http://msdn.microsoft.com/en-us/library/ms810604.aspx (Code Sample 2 (http://msdn.microsoft.com/en-us/library/ms810604.aspx#ntfs5_codesamp2) )
На всякий случай, скрипт прикреплен к сообщению.

Что в нем происходит:
Открывается InputBox - вводим имя исходного файла.
Открывается второй InputBox - вводим имя конечного файла.
Скрипт создает конечный файл как жесткую связь с исходным файлом (вдруг кто в танке, хотя и вряд ли: очень (!!!) грубо грубо говоря - копирует исходный файл).

Где происходит ошибка (отладку проводил на PrimalScript):

dim oHL
set oHL = CreateObject("HardLink.Object.1")
oHL.CreateNewHardLink sHardLinkName, sTargetFile


На второй строчке (в смысле, set oHL = ...) и происходит ошибка. Еще раз оговорюсь, что с VBScript я практически не знаком, но мне очень нужна ваша помощь! :blush2:

Petya V4sechkin
24-05-2009, 15:40
Noomorph, насколько я понял, HardLinks.vbs - всего лишь обертка. Чтобы она работала, надо скомпилировать и зарегистрировать библиотеки (исходники на C++ там же в архиве).

Noomorph
24-05-2009, 16:25
Спасибо за ответ!
Сейчас установлю Microsoft Visual C++ 2008 Express Edition и попробую скомпилировать и зарегистрировать библиотеки из того архива (http://download.microsoft.com/download/f/c/6/fc6943eb-790a-44aa-b32d-14ed7e22fd5d/ntfsext.exe).

Noomorph
24-05-2009, 16:49
Кажется, в Express нет некоторых очень нужных файлов в папке include\.
Обращение к народу:
Если у вас есть Microsoft Visual C++ Professional Edition (или получше) - попробуйте скомпилировать проект в прикрепленном архиве, пожалуйста. И выложите сюда.

Admiral
24-05-2009, 17:33
Noomorph, нужно ещё скачать Platform (Windows) SDK (http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx), тогда всё в include, и не только, будет хватать для Express Version.
Скомпилировал в Visual C++ 9.0 Express Edition при наличии Microsoft Windows SDK v6.1
В архиве две версии для двух профилей исходного проекта: ReleaseMinSize и ReleaseMinDependency
Присутствую так же файлы манифесты.

Noomorph
24-05-2009, 18:02
Admiral, огромное спасибо!
Зарегистрировал библиотеку (лично я выбрал для себя ReleaseMinDependency), и скрипт действительно пошел.
Спасибо за совет насчёт SDK 6.1, теперь буду точно знать, что там ActiveX Template Library тоже присутствует. Меня сбил с толку вот этот линк (https://developer.mozilla.org/en/atlbase.h), процитирую:
The Windows 2003 SDK is a free download and comes with ATL headers. NOTE: The Windows 2008 SDK which the 2003 SDK page points you to, doesn't appear to have the ATL headers.




© OSzone.net 2001-2012