Вопросы по cmd.exe в 2000
---
...Я работаю антинаучным аферистом...
Хотелось бы, чтобы оно работало, будучи так прописано в виндовом диалоге "переменные среды".
Раз оно работает в ХР, мб надо просто ключик в реестре 2000 поправить, чтобы заработало?..
А каким образом виндовый диалог "переменные среды" узнает порядок, в котором тебе нужно эти переменные определять?
Но в 2000 он видимо делает только 2.
А в ХР - по крайней мере 3 - большую вложенность не проверял.
Мб этот параметр (число проходов) просто есть в реестре?
Но то, что он узнает порядок - факт - работает же
Microsoft Windows 2000 [Версия 5.00.2195]
(С) Корпорация Майкрософт, 1985-2000.
C:\>set t1=test
C:\>set t2=%t1%1
C:\>echo %t2%
test1
C:\>set t3=%t2%-%t1%
C:\>echo %t3%
test1-test
C:\>
Я чего-то не так делаю?
---
...Я работаю антинаучным аферистом...
Или я не понял что ты хочешь?
Попробуйте задать их как переменные в виндовом диалоге "переменные среды"
set t3
?
Спасибо, дома еще раз проверю.
// This script initializes some environment variables
var WshShell = WScript.CreateObject("WScript.Shell");
var WshSysEnv = WshShell.Environment("SYSTEM");
// Visual Studio
WshSysEnv("VSINSTALLDIR")="C:\\Program Files\\Microsoft Visual Studio .NET 2003\\Common7\\IDE";
WshSysEnv("VCINSTALLDIR")="C:\\Program Files\\Microsoft Visual Studio .NET 2003";
WshSysEnv("FrameworkDir")="C:\\WINDOWS\\Microsoft.NET\\Framework";
WshSysEnv("FrameworkVersion")="v1.1.4322";
WshSysEnv("FrameworkSDKDir")="C:\\Program Files\\Microsoft Visual Studio .NET 2003\\SDK\\v1.1";
WshSysEnv("DevEnvDir")="%VSINSTALLDIR%";
WshSysEnv("MSVCDir")="%VCINSTALLDIR%\\VC7";
// Path
var PATH = "";
// windows
PATH += "c:\\windows\\system32;c:\\windows;c:\\windows\\system32\\WBEM;";
// VS
PATH += "%DevEnvDir%;%MSVCDir%\\BIN;";
PATH += "%VCINSTALLDIR%\\Common7\\Tools;%VCINSTALLDIR%\\Common7\\Tools\\bin\\prerelease;";
PATH += "%VCINSTALLDIR%\\Common7\\Tools\\bin;";
PATH += "%FrameworkSDKDir%\\bin;%FrameworkDir%\\%FrameworkVersion%;";
PATH += "c:\\program files\\WinRAR";
WshSysEnv("PATH") = PATH;
WshSysEnv("INCLUDE") = "%MSVCDir%\\ATLMFC\\INCLUDE;%MSVCDir%\\INCLUDE;"
+ "%MSVCDir%\\PlatformSDK\\include\\prerelease;"
+ "%MSVCDir%\\PlatformSDK\\include;%FrameworkSDKDir%\\include";
WshSysEnv("LIB") = "%MSVCDir%\\ATLMFC\\LIB;%MSVCDir%\\LIB;"
+ "%MSVCDir%\\PlatformSDK\\lib\\prerelease;%MSVCDir%\\PlatformSDK\\lib;"
+ "%FrameworkSDKDir%\\lib";
Но все равно спасибо
ХР в этом смысле ничем от 2000 не отличается.
Просто я пример неправильный выбрал.
Попробуйте в этом примере t1 заменить на t5, а t2 на t4
Если хочешь, чтобы подставлялись пустые строки, присвой их.
---
...Я работаю антинаучным аферистом...
Я имел в виду, что это:
set t1=1заменить на это:
set t2=%t1%2
set t3=%t2%2%t1%
set t5=1
set t4=%t5%2
set t3=%t4%2%t5%
Но задать их как переменные в виндовом диалоге "переменные среды"
У меня получилось следующее и на 2000, и на ХР:
t3=%t4%0123
t4=123321
t5=123
Ну значит винда их присваивает по алфавиту
А по вопросам 2 и 3 вообще никто не в курсе?
2. см. setlocal в Help and Support
Т.е. создать reg файл и напустить на него regedit. Или ботать команду reg, но я не знаю в какой винде она появилась.
Спасибо, посмотрю.
Оставить комментарий
durka82
1. Как в 2000 сделать, чтобы работала рекурсивная постановка значений переменных в другие переменные?Например:
Надо чтобы в t3 было "1221", а не "%t1% 221".
В ХР работает нормально.
2. Как обновить переменные в текущем сеансе до системных? То есть сбросить на те значения. которые были в начале сеанса.
3. Можно ли текущие значения переменных сеанса сохранить как глобальные/пользовательские?