Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Не подхватывает заданную переменную для пути

Новый участник


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


Конфигурация

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


Вечер добрый. Ситуация у меня повторяется довольно часто, сам решения найти не могу.
Суть скрипта:
1) Определяем букву диска, на котором находится определенная папка (в реальности определяется буква флешки) и заносим это значение в переменную FLASH
2) Если путь не найден - гневная мессага и последующий выход из скрипта
3) Если путь найден - выводим сообщением букву флешки. А вот далее эту букву хотелось бы передать в определенный файл. Собственно, не работает кусок кода:
Код: Выделить весь код
echo %FLASH% > %FLASH%\C#\tmp.txt
Пишет "Отказано в доступе". Ощущение, что не может обработать переменную, ибо если путь задавать, скажем, 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
Благодарности: 8087

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


Фактическая ошибка — лишний пробел при присвоении в:
Код: Выделить весь код
… set FLASH=D: && goto 2
после имени диска и двоеточия. Должно быть так:
Код: Выделить весь код
… set FLASH=D:&& goto 2
Вторая ошибка того же типа. Не:
Код: Выделить весь код
echo %FLASH% > %FLASH%\C#\tmp.txt
а:
Код: Выделить весь код
echo %FLASH%> %FLASH%\C#\tmp.txt
Для ясности можно перенести перенаправление вывода перед командой:
Код: Выделить весь код
>%FLASH%\C#\tmp.txt echo %FLASH%
А проще заменить весь перебор на:
Код: Выделить весь код
@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
Благодарности: 0

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


Снимаю шляпу. Большое спасибо.

Отправлено: 08:18, 26-03-2012 | #3



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - Как установить переменную среду для 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




 
Переход