Подтвердить что ты не робот

Могу ли я копировать файлы в сетевое место из script или в командной строке?

Возможно ли в Windows XP копировать файлы в сетевое место из командной строки, командный файл или, что еще лучше, PowerShell script?

То, что пришло мне на этот путь исследований, пыталось опубликовать файлы в библиотеке документов WSS 3.0 с пользовательской машины. Я не могу сопоставить диск с соответствующей библиотекой, потому что сайт WSS доступен только для проверки подлинности через NTLM на порту, отличном от 80 или 443. Я полагаю, что я мог бы попеременно использовать веб-службы WSS для выталкивания файлов, но я Мне действительно интересно узнать ответ на этот вопрос сейчас.

4b9b3361

Ответ 1

Из того, что я вижу, кажется, что невозможно получить прямой доступ/манипулировать сетевым местом из командной строки, будь то в PowerShell или в командной строке plain ol.

@slipsec (# 13899): Благодарим вас за предложение, но PowerShell не поддерживает номер порта в пути назначения больше, чем команда net use.

Итак, лучшее, что я могу сделать в своей конкретной ситуации, - это укусить пулю и купить что-то вроде WebDrive, чтобы включить сопоставление дисков через WebDAV на нестандартных портах или сделать некоторую другую конфигурацию (например, отдельное веб-приложение с другим IP-адрес и заголовки хостов) в SharePoint, чтобы открыть сайт через NTLM на стандартном порту.

Ответ 2

Используя командный файл, вы можете войти в ресурс и скопировать файл:

Пакетный файл будет содержать следующее:

net use \\{dest-machine}\{destfolder} {password} /user:{username}
copy {file} \\{dest-machine}\{destfolder}

например.

net use \\Development\myfolder mypassword /user:Administrator
copy newfile.c \\development\myfolder

Ответ 3

Если вы имеете в виду windows box, просто используйте xcopy. Достаточно стандартно иметь xcopy.

xcopy src \\dest-machine\shared-library-name\dest
xcopy \\src-machine\shared-library-name\dest src

Ответ 4

Powershell использует абстракцию поставщиков, чтобы обеспечить общий интерфейс в хранилища данных. Они, похоже, придерживаются общего существительного "Предмет", поэтому вы можете получить полный список с помощью man *item*. Если вы знаете другой способ скопировать и иным образом работать с данными из магазина, вы можете также использовать его, но использование командлетов обеспечивает лучший подход "один раз, использование-часто". В вашем случае вы можете:

Copy-Item test.txt -Destination \\dest-machine\share

Копировать-элемент также поддерживает параметр -Credential, если он вам нужен.

Ответ 5

"Сетевые места" на самом деле не имеют API, это всего лишь куча ярлыков, а общий ресурс SharePoint использует расширение оболочки, если я правильно помню.

Все, что можно сказать: доступ к Sharepoint как файловой системе из PowerShell также требует расширения, поставщик SharePoint.

Ответ 6

вы можете использовать команды "net" для аутентификации, а затем для копирования файлов.

copy src \\dest-machine\shared-library-name\dest

Я не уверен точно, как обрабатывать аутентификацию, если это необходимо.

Ответ 7

Если вам нужно script, вам следует рассмотреть NAnt.

Он используется, главным образом, для скриптов сборки, но он очень мощный и достаточно простой в использовании.

Там также NAntContrib и nant ftp task, который должен помочь вам.

Ответ 8

Я мог ошибаться в этом, но я думаю, что ни одно из решений Nic robocopy или Nathan copy command solution не будет работать. Кажется, что у Robocopy есть сопоставленный диск, который я не могу сделать, потому что он не работает на порту 80 или 443, а Windows не может обрабатывать путь, который включает порт в имени UNC-стиля:

copy src \\dest-machine:45000\shared-library-name\dest

Я не видел задачу NAnt, которая также обрабатывала бы эту ситуацию.

Я также знаю, что есть инструменты, которые позволят мне отображать диски WebDAV. Мне было интересно узнать, есть ли способ использовать сетевые места, которые были настроены без использования графического интерфейса.

Ответ 9

Да, вы можете. Я предлагаю использовать такой инструмент, как robocopy.