|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] как правильно передать переменные подпрограмме из цикла for |
|
CMD/BAT - [решено] как правильно передать переменные подпрограмме из цикла for
|
Пользователь Сообщения: 58 |
Профиль | Отправить PM | Цитировать
Столкнулся с непонятной проблемой. Получил задачу: «Есть файлы с одинаковыми именами. Нужно собрать только с разными размерами в одной папке, нумеруя их восходящей нумерацией.» Однако после применения цикла for постоянно возникает ошибка «не является внутренней или внешней командой, исполняемой программой или пакетным файлом». CMD.EXE (win xp sp2) никого не узнает. Подскажите в чем дело, пожалуйста…
Вот живой пример: Цитата:
|
||
Отправлено: 00:35, 06-01-2008 |
Сообщения: 53445
|
Профиль | Отправить PM | Цитировать akrav, ваш фрагмент в любом случае не может быть рабочим:
если он есть, но другого размера продолжаем перебор if "%size2%" neq "%size1%" (set /a j=j+1 & goto label1) если такого файла нет копируем его if "%size2%"=="0" (xcopy "%Arg1%" "%~d0\Base\%i%%name1%" /c/q/r/h/p) goto exit rem если такого файла нет копируем его и выходим if not exist %Arg2% (xcopy "%Arg1%" "%Arg2%" /c/q/r/h & goto exit) rem если он есть, но другого размера продолжаем перебор if "%size2%" neq "%size1%" (set /a j=j+1 & goto label1) goto exit Выполните в командной строке: xcopy /? |
Отправлено: 16:29, 06-01-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 58
|
Профиль | Отправить PM | Цитировать Новогодние чудеса продолжаются…
Задача была в проанализировать текстовой лог-файл (\Base\log.txt) с двумя колонками: Цитата:
Создаю пакетный файл: Цитата:
Цитата:
|
|||
Последний раз редактировалось akrav, 07-01-2008 в 17:01. Отправлено: 23:42, 06-01-2008 | #3 |
Пользователь Сообщения: 58
|
Профиль | Отправить PM | Цитировать Поздравляю Всех с Рожеством Христовым!
Мне кажеться, что основная проблема в том, как правильно передать переменные подпрограмме из следующего цикла: Цитата:
Цитата:
Цитата:
Цитата:
|
||||
Отправлено: 16:43, 07-01-2008 | #4 |
Сообщения: 53445
|
Профиль | Отправить PM | Цитировать akrav, о-хо-хо...
Во-первых, уберите скобку в конце: Должно быть: Во-вторых, замените в testproject.cmd все %Arg1% на %1 и %Arg3% на %2 rem выделим из Arg1 имя файла с расширением for %%i in (%1) do (set name1=%%~Ni%%~Xi) rem определим размер файла test.doc for %%i in (%1) do (set /a size1=%%~Zi) rem в цикле label1 сравним имеющиеся файлы в папке "Проект" set /a j=1 :label1 set Arg2=%~d0\Base\%2\%j%%name1% set /a size2=0 rem определим размер файла jtest.doc for %%i in (%Arg2%) do if exist %Arg2% (set /a size2=%%~Zi) rem если такого файла нет копируем его и выходим if not exist %Arg2% (xcopy "%1" "%Arg2%" /c/q/r/h & goto exit) rem если он есть, но другого размера продолжаем перебор if "%size2%" neq "%size1%" (set /a j=j+1 & goto label1) :exit |
|
Отправлено: 17:51, 07-01-2008 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Как в Run передать переменные в качестве параметров | ASH | AutoIt | 4 | 17-12-2009 10:13 | |
[решено] как создавать переменные с динамическими именами | speechless | AutoIt | 5 | 15-09-2009 09:38 | |
[решено] Как узнать разрешение екрана (получить высоту и ширину в переменные) | crashtuak | AutoIt | 2 | 07-08-2009 15:50 | |
CMD/BAT - [решено] Использование If в теле цикла For | ven00m | Скриптовые языки администрирования Windows | 3 | 11-01-2008 17:09 | |
Как переменные из одного скрипта передать ? | Kudryavcev Dmitry | Вебмастеру | 4 | 04-10-2003 03:10 |
|