У меня есть документ notepad.txt (файл), который содержит путь к файлу нескольких файлов на моем компьютере.  Например:

C:\Users\Foo\Pictures\Photographs\September\P1030944.jpg
C:\Users\Foo\Videos\Art\Movies\Class\movie.avi
C:\Users\Foo\Music\Jazz\20051.mp3

...так далее.

Файлы, перечисленные в текстовом документе, находятся в разных местах на моем компьютере. Есть ли способ переместить эти файлы из их источников в одно место назначения (например, H:\Users\Destination), используя их путь только в документе notepad.txt ?

2 ответа2

0

Вы можете использовать команду

for /f "tokens=*" %A in (notepad.txt) do @move "%~A" "H:\Users\Destination\%~nxA"
0

Это можно сделать в PowerShell:

Get-Content.\ Notepad.txt | ForEach-Object {Move-Item -Force "$ _" "H:\ Users\ Destination\"}

  • Get-Content .\notepad.txt захватывает каждую строку в файле notepad.txt .
  • ForEach-Object циклически перебирает каждую строку, переданную из Get-Content
  • Move-Item -Force перемещает файл в новое место, независимо от того, находится ли он уже там. Без ключа -Force , если бы в каталоге назначения существовало одно и то же имя файла, скрипт выдал бы ошибку.
  • $_ - это значение строки, переданной из Get-Content (например, C:\Users\Foo\Pictures\Photographs\September\P1030944.jpg). Двойные кавычки вокруг $_ обязательны, но необходимы, если в пути или имени файла есть пробел.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .