Цитата Pozia:
Цитата Stayshayder:
Да и сделать переменную, для папки с установкой, всё же желательно. Если вдруг захотите установить MathCAD в другую папку, тогда достаточно будет изменить всего один параметр. Если делать без этой переменной, тогда придётся изменять все строчки, которые содержат путь для установки. »
|
вот это вообще не понятно мне ламеру. можно подробнее? »
|
Можно
Как и любой язык программирования, cmd предоставляет возможность присвоить какой-либо переменной определённое значение (например путь до какого-либо файла, имя файла, счётчик, или что-то ещё), что гораздо упрощает написание кода программы, когда надо несколько раз обращаться к одному и тому же файлу, или пути. Т.е. после присвоения значения, какой-либо переменной, в дальнейшем можно будет использовать эту переменную там, где необходимо указать какой-либо путь. Windows будет сам подставлять путь, присвоенный переменной, туда, где указана эта переменная.
Да и если вдруг понадобится необходимость использования другого пути, тогда достаточно будет изменить всего одну строчку, в которой определённой переменной присваивается какое-то значение, а не изменять все строчки кода, в которых идёт обращение к какому-либо файлу, что гораздо удобней и быстрей.
Рассмотрим небольшой пример.
Допустим, нам надо вывести на экран 5 каких-либо опредёлённых значений (например 5 путей до файлов).
Это можно реализовать так:
Код:

@Echo OFF
Echo 1. C:\WINDOWS\system32\main.cpl
Echo 2. C:\WINDOWS\system32\DirectX\Dinput\actc094.ini
Echo 3. C:\WINDOWS\system32\drivers\etc\hosts
Echo 4. C:\WINDOWS\system32\shell32.dll
Echo 5. C:\WINDOWS\system32\
Exit
Данный cmd файл будет не очень универсальным, т.к. не у всех Windows установлен на диск C:\, да и установить его можно не только в папку Windows, а в какую-либо другую. А в данном случае идёт жёсткая привязка именно к пути "C:\WINDOWS". Да и для того, чтобы указать, например не папку Windows, а Windir, придётся изменять каждую строчку кода.
Можно сделать более универсально, и использовать стандартные переменные Windows. Например так:
Код:

@Echo OFF
Echo 1. %WINDIR%\system32\main.cpl
Echo 2. %WINDIR%\system32\DirectX\Dinput\actc094.ini
Echo 3. %WINDIR%\system32\drivers\etc\hosts
Echo 4. %WINDIR%\system32\shell32.dll
Echo 5. %WINDIR%\system32\
Pause
Exit
В данном примере мы сняли жёсткую привязанность к пути, куда установлен Windows. Но редактирование такого файла будет по-прежнему затруднительным, т.к. так же, придётся изменять каждую строчку, если нужно будет указать другую папку. Чтобы ещё облегчить последующее редактирование путей, можно добавить свою переменную, которой будет присвоен определённый путь. Т.е. так:
Код:

@Echo OFF
Set Folder=%WINDIR%\system32
Echo 1. %Folder%\main.cpl
Echo 2. %Folder%\DirectX\Dinput\actc094.ini
Echo 3. %Folder%\drivers\etc\hosts
Echo 4. %Folder%\shell32.dll
Echo 5. %Folder%\
Pause
Exit
В данном примере также, как и в предыдущем, нет жёсткой привязки к папке, в которую установлен Windows. Но редактирование этого кода будет более лёгким, т.к. нам уже не надо будет изменять все строчки, в которых указан путь. Достаточно будет изменить всего одну строчку, в которой мы присваивание переменной определённый путь. Данный код можно считать достаточно универсальным, т.к. в нём нет ни жёсткой привязки, да и для изменения всех путей, достаточно будет изменить значение всего одной переменной. Но у данного кода, также, как и во всех предыдущих примерах, есть один минус. Заключается он в том, что указывать цифры от 1 до 5 руками не очень удобно, да и если мы поменяем местами какие-либо строчки, то порядок цифр в списке уже будет нарушен, и придётся изменять практически все строчки. Для того, чтобы избежать этого можно создать счётчик, и значение его присвоить какой-либо переменной. Т.е. так:
Код:

@Echo OFF
Set i=1
Set Folder=%WINDIR%\system32
Echo %i%. %Folder%\main.cpl
SET /A i+=1
Echo %i%. %Folder%\DirectX\Dinput\actc094.ini
SET /A i+=1
Echo %i%. %Folder%\drivers\etc\hosts
SET /A i+=1
Echo %i%. %Folder%\shell32.dll
SET /A i+=1
Echo %i%. %Folder%\
Pause
Exit
Данный вариант уже избавлен и от жёсткой привязанности к диску, на который установлен Windows, и для изменения пути достаточно будет изменить значение всего одной переменной, и цифры вместо нас будет расставлять Windows.
Во всех вариантах на экран будет выведено следующее:
Код:

1. C:\WINDOWS\system32\main.cpl
2. C:\WINDOWS\system32\DirectX\Dinput\actc094.ini
3. C:\WINDOWS\system32\drivers\etc\hosts
4. C:\WINDOWS\system32\shell32.dll
5. C:\WINDOWS\system32\
Для продолжения нажмите любую клавишу . . .
Причём, во всех вариантах, кроме первого, если Windows будет установлен не на диск C:\ , то будет указан тот диск, на который он установлен. В первом же варианте, в независимости от того, на какой диск установлен Windows будет, выведен путь "
C:\WINDOWS\system32\"
Можно вообще ещё присвоить каждому файлу свою переменной, а затем выводить всё это только через переменные. Например так:
Код:

Set i=1
Set Folder=%WINDIR%\system32
Set File1=main.cpl
Echo %i%. %Folder%\%File1%
Или во время присвоения переменной ещё и указывать путь к файлу и его номер. Вывод на экран в таком случае будет примерно следующим:
Код:

Set i=1
Set Folder=%WINDIR%\system32
Set File1=%i%. %Folder%\main.cpl
Echo %File1%
Цитата Habetdin:
Вам предлагают вместо прописывания пути несколько раз задать переменную »
|
Правильней будет не "несколько раз
задать переменную", а "несколько раз
использовать переменную", которой присвоен путь для установки.