Я новичок в PowerShell, и мне бы очень хотелось, чтобы это можно было скриптировать. У меня есть текстовый файл, где каждая строка является частью имени файла без пути или расширения. Я хотел бы, чтобы однострочный контур, проходящий через каждую строку файла (с gc - Get-Content, справа?), Принимает содержимое строки, конструирует исходный путь (сетевой диск и расширение являются статическими), создает путь назначения, а затем копирует каждый файл. Мое содержимое файла, как это:PowerShell: прочитайте строки из текстового файла, создайте имена файлов источника и целевого файла, затем скопируйте файлы
12345678
98765432
32145698
12365782
И моя исходная папка является UNC путь:
\\server\share
И моя папка назначения:
c:\temp\files
Я хотел бы сделать эквивалент этой команды DOS, используя $_
в качестве текста из каждой строки файла:
copy \\server\share\$_.ext c:\temp\files\$_.ext
Я уверен, что я могу использовать gc
и $_
, чтобы получить доступ к каждой строке файла, и что мне нужно использовать cp
для копирования файлов, но у меня возникают проблемы построения имен исходных файлов и назначения.
Отлично. Огромное спасибо! @ JaredPar, мой личный тренер Powershell. –
что-то не так с 'gc theFileName | % {cp '\\ server \ share \ $ _. ext' 'C: \ temp \ files'} '? Или это коротко? :-) – Joey
@Johannes, я думаю, что это сработает, но я забыл о правилах синтаксического анализа при замене внутри строки изредка и не был уверен, правильно ли интерпретируется .ext. Отсюда пошел безопасный маршрут – JaredPar