PowerShell: как скопировать только выбранные файлы с исходного каталога?

Это может зависеть от Вашего использования. XML, который используется для представления stuctured данных, сгенерированных от базы данных, может работать хорошо с в конечном счете значениями полей, помещаемыми как атрибуты.

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

, Например, позволяет, говорят, что у нас был этот XML, как предложено в answer:-

<INVENTORY>
   <ITEM serialNumber="something" barcode="something">
      <Location>XYX</LOCATION>
      <TYPE modelNumber="something">
         <VENDOR>YYZ</VENDOR>
      </TYPE>
    </ITEM>
</INVENTORY>

Теперь, мы хотим отправить элемент ОБЪЕКТА на устройство для печати его штрихкод однако существует выбор типов кодировки. Как мы представляем требуемый тип кодировки? Внезапно мы понимаем, несколько запоздало, что штрихкод не был единственным значением автомикрометра, а скорее он может быть квалифицирован с кодированием, требуемым, когда распечатано.

   <ITEM serialNumber="something">
      <barcode encoding="Code39">something</barcode>
      <Location>XYX</LOCATION>
      <TYPE modelNumber="something">
         <VENDOR>YYZ</VENDOR>
      </TYPE>
   </ITEM>

точка - то, если Вы создающий некоторый XSD или DTD наряду с пространством имен для фиксации структуру в камне Вы не можете быть лучше всего обслужены, оставив Ваши опции открытыми.

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

5
задан sivabudh 6 November 2009 в 03:33
поделиться

2 ответа

О, это было довольно просто:

# source and destionation directory
$src_dir = "C:\Users\Pac\Desktop\C4new\"
$dst_dir = "C:\Users\Pac\Desktop\csci578-hw3\Prism\C4new"

# list of files from source directory that I want to copy to destination folder
# unconditionally
$file_list = "C4newArchitecture.java", 
             "CustomerData.java",
             "QuickLocalTransState.java",
             "QuickLocalTransState_AbstractImplementation.java",
             "SaveSessionOK.java",
             "SessionID.java",
             "UserInterface.java",
             "UserInterface_AbstractImplementation.java"

# Copy each file unconditionally (regardless of whether or not the file is there
foreach ($file in $file_list)
{
  Copy-Item $src_dir$file $dst_dir
}

Как программист, я люблю foreach!

9
ответ дан 18 December 2019 в 07:55
поделиться

Предполагая, что файлы являются непосредственно unde $ src_dir, вы можете сделать это немного проще, т.е. копия может быть однострочным:

$file_list | Copy-Item -Path {Join-Path $src_dir $_} -Dest $dst_dir -ea 0 -Whatif

-ea - это псевдоним для параметра -ErrorAction а значение 0 соответствует SilentlyContinue. Это заставляет Copy-Item игнорировать ошибки, как если бы один из исходных файлов не существовал. Однако, если у вас возникли проблемы, временно удалите этот параметр, чтобы вы могли видеть сообщения об ошибках.

При вводе этого материала в интерактивном режиме я обычно использую подобные ярлыки, но в сценариях лучше писать его по буквам для удобства чтения. Также обратите внимание, что параметр -Path может принимать блок сценария, то есть сценарий в фигурных скобках. Технически командлет Copy-Item никогда не видит блок сценария, а только результаты его выполнения. Это работает в целом для любого параметра, который принимает входные данные конвейера.

11
ответ дан 18 December 2019 в 07:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: