DOS переміщення специфічного розширення .xml файлу [дублікат]


2

Я хочу перенести свої .xml файли з каталогу (назвемо це "від") в інший (ми будемо називати його "до"), але за допомогою макіяжних символів переміщується небажані файли, такі як .xml_. Як я можу перемістити їх, визначаючи розширення ".xml"?


Відповіді:


2

Як посилання @ Скотт обговорює, *.xmlзбігається *.xml_, тому що ім'я 8.3 закінчується .XML(використовувати dir /xдля показу).

На щастя, команда ForFiles не піддається цій ексцентриситеті, тому ви можете використовувати:

forfiles /m *.xml /c "cmd /c move @path TargetDir\"

Примітки:

  • Оскільки moveце внутрішня команда, cmdдля її виклику потрібен окремий (це не потрібно для зовнішньої команди (наприклад xcopy)), як в forfiles /m *.xml /c "xcopy @path TargetDir\").
  • Існує /sпараметр, який буде повторюватися через підкаталоги, але він не буде повторювати цільовий каталог: якщо ви хочете, щоб дерево джерела було узгоджене з цільовим, вам потрібно буде проаналізувати вихідний шлях, щоб знайти правильний цільовий каталог, що, мабуть, найкраще зробити в пакетному файлі:

    forfiles /m *.xml /c "cmd /c call mover.cmd @relpath TargetDir\"

  • Якщо вам це потрібно mover.cmd, я пишу це як сценарій для вас.

  • Я не перевіряв, що відбувається, коли в іменах файлів чи каталогів є пробіли, але я очікую ускладнень.

Фантастичний, працює як шарм у пакетному файлі, дуже дякую!
Коробка сиру

0

Ви маєте змогу переміщувати .xml файли, використовуючи * .xml як ім'я файлу. Це призведе до наступної команди:
move C:\source\folder\*.xml C:\destination\folder\


Дякую, але знову ж таки проблема полягає в макетів (* в даному випадку). Мені потрібно щось, що б фільтрувало все, окрім саме ".xml", оскільки при цьому потрапляють файли .xml_
A Box Of Cheese

Це дивно, я зробив джерело та призначення папки. У джерелі папки у мене був файл test.xml та файл test.xml_, а команда, яку я опублікувала, лише перемістила .xml і залишила .xml_ в спокої. Однак superuser.com/questions/825615/…, згаданий Скоттом, може застосовуватися у вашому випадку. Мій тест був зроблений в Windows 10.
User025

Я бачу, я використовую Windows 7, щоб це могло бути причиною проблеми, чи можна знайти тут будь-який користь у сценарії, який знаходить лише імена файлів, що закінчуються точно .xml та переміщують їх?
Коробка сиру

Я не впевнений, як ви могли це досягти з findstr, проте є командлет Powershell "Переміщення-елемент", тому якщо Powershell - це варіант, який може працювати. Командою буде "Перемістити елемент-Шлях С: \ джерело \ папка \ *. Xml -Задача C: \ призначення \ папка \`
User025
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.