2015-02-12 9 views
1

Моя цель - конвертировать некоторые файлы с расширением * .cdr в * .ai в каталог. Файлы выглядят как file_a.cdr. file_b.cdr ...... Я заменил convert.exe для вас другой простой командой, такой как копия, поэтому не спрашивайте о смысле здесь в моем примере.Simple Batch In For Loop Not Working

setlocal enableDelayedExpansion 
    for %%f in (*.cdr) do (
    set "infile=%%f" 
    set "outfile=%%~nf.ai" 
    copy "%infile%" "%outfile%" 
    ) 

Выходной сигнал партии всегда отличается !!!!

Иногда:

copy "%file_a.cdr" "%file_a.ai" => system cannot find file

или

copy "" "" => system cannot find file

Я уже использовал этот синтаксис copy !infile! !outfile! с теперь успехом:

Thx заранее

ответ

4

Вам не нужны переменные

for %%f in (*.cdr) do (
    convert "%%f" "%%~nf.ai" 
) 

Или, если вы пытаетесь сделать это из командной строки,

for %f in (*.cdr) do convert "%f" "%~nf.ai" 

, как нужно внутри пакетных файлов знаки процента экранировать, но это не случай для командной строки.

+0

А теперь я понимаю, что такое фраза 'convert.exe'. – GolezTrol

+0

Это правильный ответ. [** Принятие ответов **] (https://stackoverflow.com/help/accepted-answer). –

0

Использование замедленного расширения. И окружайте свои переменные! вместо%