Могу ли я копировать файлы в сетевое место из script или в командной строке?
Возможно ли в Windows XP копировать файлы в сетевое место из командной строки, командный файл или, что еще лучше, PowerShell script?
То, что пришло мне на этот путь исследований, пыталось опубликовать файлы в библиотеке документов WSS 3.0 с пользовательской машины. Я не могу сопоставить диск с соответствующей библиотекой, потому что сайт WSS доступен только для проверки подлинности через NTLM на порту, отличном от 80 или 443. Я полагаю, что я мог бы попеременно использовать веб-службы WSS для выталкивания файлов, но я Мне действительно интересно узнать ответ на этот вопрос сейчас.
Ответы
Ответ 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.