|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Не подхватывает заданную переменную для пути |
|
CMD/BAT - [решено] Не подхватывает заданную переменную для пути
|
Новый участник Сообщения: 30 |
Вечер добрый. Ситуация у меня повторяется довольно часто, сам решения найти не могу.
Суть скрипта: 1) Определяем букву диска, на котором находится определенная папка (в реальности определяется буква флешки) и заносим это значение в переменную FLASH 2) Если путь не найден - гневная мессага и последующий выход из скрипта ![]() 3) Если путь найден - выводим сообщением букву флешки. А вот далее эту букву хотелось бы передать в определенный файл. Собственно, не работает кусок кода: Пишет "Отказано в доступе". Ощущение, что не может обработать переменную, ибо если путь задавать, скажем, G:\C#\tmp.txt, то все проходит отлично. Но в то же время, эта же переменная на 1 строку выше по коду отлично обрабатывается и выводится верно. Вот полный кусок кода. Заранее спасибо за любую помощь. @echo off echo Ищем исходники на флешке echo Критерий: наличие \C#\STDU FLASH\ на диске (D:-J:) echo. if exist "D:\C#\STDU FLASH\" set FLASH=D: && goto 2 if exist "E:\C#\STDU FLASH\" set FLASH=E: && goto 2 if exist "F:\C#\STDU FLASH\" set FLASH=F: && goto 2 if exist "G:\C#\STDU FLASH\" set FLASH=G: && goto 2 if exist "H:\C#\STDU FLASH\" set FLASH=H: && goto 2 if exist "I:\C#\STDU FLASH\" set FLASH=I: && goto 2 if exist "J:\C#\STDU FLASH\" set FLASH=J: && goto 2 echo На флешке исходных данных НЕ НАЙДЕНО! Выходим! pause exit :2 echo Папка c исходниками найдена на флешке. Диск - %FLASH% echo %FLASH% > %FLASH%\C#\tmp.txt pause |
|
Отправлено: 00:38, 26-03-2012 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Фактическая ошибка — лишний пробел при присвоении в:
после имени диска и двоеточия. Должно быть так: Вторая ошибка того же типа. Не: а: Для ясности можно перенести перенаправление вывода перед командой: А проще заменить весь перебор на: @echo off setlocal enableextensions enabledelayedexpansion echo Ищем исходники на флешке echo Критерий: наличие \C#\STDU FLASH\ на диске (D:-J:) echo. set /a bFound = 0 for %%i in (D E F G H I J) do ( if exist "%%i:\C#\STDU FLASH\." ( echo Папка c исходниками найдена на [%%i:]. >"%%i:\C#\tmp.txt" echo %%i: set /a bFound = 1 ) ) if %bFound% equ 0 echo Папка c исходниками не найдена. endlocal exit /b 0 |
Отправлено: 01:54, 26-03-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Снимаю шляпу. Большое спасибо.
|
Отправлено: 08:18, 26-03-2012 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Установка - Как установить переменную среду для Windows 7? | Shrek1 | Microsoft Office (Word, Excel, Outlook и т.д.) | 3 | 28-08-2010 18:09 | |
Разное - [решено] Автоматизация добавления пути в переменную среды Path | SANIOK_AV | Microsoft Windows 2000/XP | 8 | 18-03-2010 16:26 | |
[решено] Как поменять раскладку клавиатуры через AutoIt на заданную? | evg64 | AutoIt | 14 | 15-11-2009 14:55 | |
При автоматической установке W2K3 не подхватывает дрова для RAID | Danila-GFX | Автоматическая установка Windows 2000/XP/2003 | 3 | 02-04-2007 07:36 | |
(solved) Не подхватывает файл ответов. | Docent-7610 | Автоматическая установка Windows 2000/XP/2003 | 15 | 25-09-2005 11:22 |
|