![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] переменная среды не определена |
|
CMD/BAT - [решено] переменная среды не определена
|
Новый участник Сообщения: 18 |
Здравствуйте.
Хотел немного переделать под себя скрипт по смене папки пользователей в виндоус в процессе установки. Суть переделки - замена переменными путей до папок, чтобы при изменении пути ввести его 1 раз а не 3 Скрипт запускается из консоли, вызванной по Shift+F10 на экране создания пользователя, при установке ОС код
@ECHO OFF SETLOCAL enabledelayedexpansion SET OLD_USERS_DIR "C:\Users" SET NEW_USERS_DIR "D:\= Users =" SET BAK_USERS_DIR "D:\Users_BACKUP" IF EXIST %NEW_USERS_DIR% ECHO BackUp %NEW_USERS_DIR% IF EXIST %NEW_USERS_DIR% MOVE /Y %NEW_USERS_DIR% %BAK_USERS_DIR% robocopy %OLD_USERS_DIR% %NEW_USERS_DIR% /E /COPYALL /XJ rmdir %OLD_USERS_DIR% /S /Q mklink /J %OLD_USERS_DIR% %NEW_USERS_DIR% ATTRIB +H +S +R +A %NEW_USERS_DIR% REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v "ProfilesDirectory" /t REG_EXPAND_SZ /d %"NEW_USERS_DIR"% SHUTDOWN -r -f -t 5 но возникла проблема - выдает что переменная среды не определена, при этом ругается на переменные: OLD_USERS_DIR и BAK_USERS_DIR подскажите - где ошибка |
|
Отправлено: 12:33, 08-12-2014 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата ~Cache~:
Цитата:
2. Указывать каталог со знаками равенства в имени (ваше "D:\= Users =") рискованно. Я бы не стал. Можно хотя бы со знаком подчёркивания, входящим в состав допустимых, типа "D:\_ Users _" -- заодно каталог в списке всплывёт наверх. |
||
------- Отправлено: 13:14, 08-12-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать mwz, спасибо.... я слона то у себя в глазу и проглядел
![]() |
Отправлено: 13:17, 08-12-2014 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата mwz:
|
|
Отправлено: 14:36, 08-12-2014 | #4 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать ну про знак "=" - может быть, в итоге сделал так, может кому пригодится:
@ECHO OFF TITLE Create User Folders... COLOR 0A SET "OLD_USERS_DIR=C:\Users" SET "NEW_USERS_DIR=D:\_ Users _" SET "BAK_USERS_DIR=D:\Users_BACKUP" COLOR 0C IF EXIST %NEW_USERS_DIR% ( IF NOT EXIST %BAK_USERS_DIR% MKDIR %BAK_USERS_DIR% ATTRIB -H -S -R -A %NEW_USERS_DIR% MOVE /Y %NEW_USERS_DIR% %BAK_USERS_DIR% ) ELSE ( MKDIR %NEW_USERS_DIR% ) COLOR 0A robocopy %OLD_USERS_DIR% %NEW_USERS_DIR% /E /COPYALL /XJ rmdir %OLD_USERS_DIR% /S /Q mklink /J %OLD_USERS_DIR% %NEW_USERS_DIR% ATTRIB +H +S +R +A %NEW_USERS_DIR% REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v "ProfilesDirectory" /t REG_EXPAND_SZ /d %NEW_USERS_DIR% /f rem SHUTDOWN -r -f -t 5 |
|
Последний раз редактировалось ~Cache~, 08-12-2014 в 16:03. Причина: изменил, исходя из комментов выше Отправлено: 15:59, 08-12-2014 | #5 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать ~Cache~, чисто стилевые соображения:
1. Папки создаются без атрибута A. Поэтому снимать, а в дальнейшем устанавливать на них этот атрибут вообще бессмысленно: атрибутом А у файлов, и только файлов, пользуются лишь некоторые программы архивирования (снимают этот атрибут когда файл ими уже заархивирован). Для папок он вообще никакой роли не играет. Атрибуты R, H, S у только что созданной папки также сброшены. 2. Атрибут R (и в некоторых случаях S) для папок несёт только задание для них особых функций (меняет поведение папок при наличии внутри папки соответствующего файла Desktop.ini, описывающего особые свойства папки; в простейшем случае – устанавливает её значок, в более сложных – вообще меняет поведение папки при просмотре её Проводником). Поэтому устанавливать для папок по крайней мере атрибут R без необходимости не следует: он абсолютно не означает, что файлы внутри папок будут доступны только для чтения, или что папку нельзя будет удалить без потверждения. Скрытый текст
Пример: создайте пустую папку, положите в неё файл desktop.ini с содержимым
[.ShellClassInfo] CLSID={645FF040-5081-101B-9F08-00AA002F954E} LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-8964 и любой другой файл (например, пустой test.txt) или пустую папку; затем присвойте в окне CMD этой папке атрибут +R и попробуйте зайти в неё Проводником. |
------- Последний раз редактировалось mwz, 08-12-2014 в 23:28. Отправлено: 23:07, 08-12-2014 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Дата окончания поставок ПК с предустановленной Windows 7 не определена | OSZone News | Новости и события Microsoft | 0 | 10-12-2013 11:30 | |
2007 - Ошибки в Ворде. "Ошибка! Источник ссылки не найден" и "Ошибка! Закладка не определена | Pavelasd | Microsoft Office (Word, Excel, Outlook и т.д.) | 5 | 14-10-2012 23:55 | |
CMD/BAT - [решено] Как сказать, что это не переменная, а текст? | mrtwister | Скриптовые языки администрирования Windows | 1 | 04-05-2012 18:54 | |
CMD/BAT - [решено] Два файла - как одна переменная, переменная - как параметр | taravasya | Скриптовые языки администрирования Windows | 6 | 16-02-2010 04:49 | |
[решено] Выход из функции, если переменная не задана | D_Master | AutoIt | 2 | 19-02-2009 15:05 |
|