2017-02-07 23 views
0

У меня есть файл с именем !Template - Year End Report.doc.Использование подстановочных знаков с Windows «Копировать» и строки различной длины?

Я пытаюсь использовать следующую команду:

copy !Template* customer_name* 

Результат является customer_nameear End Report.doc.

Если я использую более короткое имя, например:

copy !Template* cust1* 

Тогда я получаю этот выход: cust1late - Year End Report.doc

Как я могу сделать это заменить «шаблон!» С именем клиента, независимо от длины ?

+0

Я понятия не имею, что вы пытаетесь сделать, но, пожалуйста, прочитайте [copy] (https://ss64.com/nt/copy.html). Вы не можете использовать подстановочные знаки в имени получателя. – DavidPostill

+0

Очевидно, вы можете. Если вы делаете 'copy! Template * customer', новый файл буквально называется' customer'. Однако, если вы используете подстановочный знак в пункте назначения, как я и сделал в вопросе, вы получаете совершенно разные результаты. –

+0

Точно. Поведение не определено, если у вас есть подстановочный знак в имени получателя. Синтаксис для копии - «copy source1 + source2 .. destination [options]». Вы можете заменить источники подстановочным знаком, но не пунктом назначения. – DavidPostill

ответ

1

нет возможности сделать это только copy. Используйте for для разделения имен файлов:

for /f "tokens=1* delims=-" %a in ('dir /b !Template*') do @echo copy "%a-%b" "cust -%b" 

(для использования в командном файле, используйте %%a и %%b вместо %a и %b)

+0

Это очень плохо. Клянусь, я делал это все время в DOS с копией. Написание командного файла немного выходит за рамки. Я надеялся использовать Excel для генерации всех строк копирования на основе существующего столбца всех моих клиентов. –

+0

хорошо - на ваш вопрос помечен «пакетный файл» ... - В любом случае: это всего лишь одна строка. Используйте его в командной строке или помещайте в пакетный файл - никакой большой проблемы. (удалите 'echo', чтобы вооружить команду' copy') – Stephan

+0

Мне пришлось бы перебирать каждое имя клиента, хотя бы, что бы добавить еще один цикл и прочитать источник. –