Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Цикл FOR где ошибка?что не так?

Ответить
Настройки темы
CMD/BAT - [решено] Цикл FOR где ошибка?что не так?

Старожил


Сообщения: 151
Благодарности: 4

Профиль | Отправить PM | Цитировать


Всем привет!
Почему пропадает значение переменной %nm% при переходе в другой for
значение обнуляется...
Вот код
Код: Выделить весь код
@Echo On
setlocal enableextensions enabledelayedexpansion

Set Folder=E:\Projects\upd\foldx
Set OutFolder=E:\Projects\upd\in
Set txt_list=E:\Projects\upd\copy.txt

For /F %%i In (%txt_list%) Do (
Set nm=%%i
for /f "tokens=*" %%a in ('Dir /b/s/a-d %Folder%\*%nm%*.*') Do (Set $Path=%%a & goto :copy)
)
:copy
xcopy /l /h /t "%$Path%" "%OutFolder%\*"

Pause
Exit
Помогите))Подправте код,а если можно то еще и объясните причину.

Отправлено: 18:44, 01-07-2013

 

Ветеран


Сообщения: 1759
Благодарности: 966

Профиль | Цитировать


1. Зачем эта переменная вообще? Используйте переменную первого цикла %%i
2. Или соблюдайте синтаксис, переменная должна выглядеть так !nm!
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:07, 01-07-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Старожил


Сообщения: 151
Благодарности: 4

Профиль | Отправить PM | Цитировать


Пути заработали но как от %$Path% отсечь %Folder% и прибавить к %OutFolder%

Если математически то так
(%OutFolder%+(%$Path% - %Folder%))

Если наглядно то так
E:\Projects\upd\in + (E:\Projects\upd\foldx\new\1\AB12345.exe - E:\Projects\upd\foldx\new) = E:\Projects\upd\in + \new\1\AB12345.exe

Ведь для копирования нужны абсолютные пути...


Код: Выделить весь код
@Echo On
setlocal enableextensions enabledelayedexpansion

Set Folder=E:\Projects\upd\foldx
Set OutFolder=E:\Projects\upd\in
Set txt_list=E:\Projects\upd\copy.txt

For /F %%i In (%txt_list%) Do (
Set nm=%%i
for /f "tokens=*" %%a in ('Dir /b/s/a-d %Folder%\*!nm!*.*') Do (Set $Path=%%a & goto :copy)
)
:copy
xcopy /l /h /t "%$Path%" "%OutFolder%\"

Pause
Exit

Отправлено: 20:17, 01-07-2013 | #3


Ветеран


Сообщения: 1759
Благодарности: 966

Профиль | Цитировать


nfs911,
Мне не совсем понятно, что надо копировать, nm, как я понял какая-то часть названия файла?
Ну так зачем его тогда искать? Если xcopy это умеет.
Код: Выделить весь код
@echo off
setlocal

pushd "E:\Projects\upd\foldx"

for /f %%i in (..\copy.txt) do xcopy /s /l /h *%%i*.* "E:\Projects\upd\in\"

popd
Как-то так, не проверял - xcopy скопирует файлы, подходящие под маску *%%i*.* с путями, начиная с текущей папки "E:\Projects\upd\foldx"

Последний раз редактировалось Foreigner, 01-07-2013 в 23:21.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:50, 01-07-2013 | #4


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата nfs911:
Ведь для копирования нужны абсолютные пути... »
Строго говоря — нет, не нужны. Точно так же можно использовать и относительные пути.

Отправлено: 23:12, 01-07-2013 | #5


Старожил


Сообщения: 151
Благодарности: 4

Профиль | Отправить PM | Цитировать


Foreigner, работает ваш код.Написано что файл скопирован но папка пуста

Отправлено: 23:33, 01-07-2013 | #6


Ветеран


Сообщения: 1759
Благодарности: 966

Профиль | Цитировать


nfs911, Ну так убери ключик /l
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:49, 01-07-2013 | #7


Старожил


Сообщения: 151
Благодарности: 4

Профиль | Отправить PM | Цитировать


Foreigner, благодарю
я думал что выводит для наглядности а оказывается в холостую))

Отправлено: 01:24, 02-07-2013 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Цикл FOR где ошибка?что не так?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Что тут не так ?) skazi69 Тест-форум 3 23-11-2011 19:01
Ни разу не собирал комп. Какова вероятность, что что-то пойдёт не так? Twix1124 Выбор отдельных компонентов компьютера и конфигурации в целом 2 23-10-2011 13:21
подскажите что не так?? beboo123 Ноутбуки 1 01-09-2011 19:04
[решено] Возникла ошибка - Resource id #5, непойму что не так..... Bullet-Avalon Вебмастеру 2 26-09-2009 15:37
Что не так? Guest Программирование и базы данных 1 10-03-2003 21:43




 
Переход