2013-12-14 3 views
2

Я создаю чат для своей школы, но мне нужно принести домой файл, чтобы внести изменения по мере необходимости, но моя проблема в том, что путь к файлу должен меняться каждый раз, когда я переместите файлы из одной системы в другую. так что я хотел бы знать, как создать %PATH%, который будет работать для меняBatch Путь к файлу vairiable% PATH%

Это мой полный код для основного файла:

Как вы можете заметить, что я новичок в этом

ПРИМЕЧАНИЕ: Все здесь отлично работает с установочным файловым путем, но я хочу, чтобы он работал легче, когда я меняю компьютеры.

Все, вероятно, может помочь

@echo off 

:Tittle 
cls 
color 74 
title Terms of Service 
echo _________________________-Terms-______________________________ 
echo If you are using this ChatRoom then you agree to the following. 
echo *you will not use Horrid Language 
echo *you will make your account with either your real name or 
echo Student id 
echo. 
echo This is monitored everyday so if anything is out of line it will be removed. 
echo. 
echo If you agree to follow these terms then type "yes" otherwise exit. 

set /p c=Do you Agree to follow the terms?: 
if %c% EQU yes goto Menu 
if %c% EQU ADMIN1423 goto Admin 
if %c% EQU dad goto Menu 
if %c% EQU carrie goto Menu 
if %c% EQU dad SET PATH=%PATH%;c:\Users\Dan W Frye\Desktop\(-_-) 
:Admin 
color 02 
cls  
Echo 

Echo. 
Echo 1.) Check User list 
Echo. 
Echo 2.) Create File Path       
Echo. 
Echo 3.) Admin Help 
Echo. 
echo 4.) N/A 
echo. 
Echo 

set /p c=Selection Number: 
if %c% EQU 1 goto UserList 
if %c% EQU 2 goto CreatePath 
if %c% EQU 3 goto AdminHelp 
if %c% EQU 4 goto Admin 
if %c% EQU back goto Tittle 

:UserList 
color 0b 
cls 
title User Listing 
cls 
start cmd 
CALL "%PATH%\Data\Chat Settings\Users\BuAsTeCrHs.bat" 
pause 
goto Admin 

:CreatePath 
cls 
color 01 
echo 
echo. 
echo The File Path Must look like this(No " "): "Driver (C:)"\Containing folder" thats it the  echo rest is automatically "\Data\Chat Settings\Users\....." 
echo. 
echo 
echo. 
echo The File Path you want to create. 
set /p PATH=File Path: 

echo. 
echo The Location/Device you are using. 
set /p LOC=Location: 

echo. 
echo %PATH% >>"%PATH%\Data\Chat Settings\File Paths\%LOC%.txt" 
echo The file path has been created! 
pause 
goto Admin 
:AdminHelp 

pause 
goto Tittle 
:Menu 
color 0b 

cls 

Echo -[ChatBox]- 
Echo 
Echo. 
Echo 1.) Login 
Echo. 
Echo 2.) Register 
Echo. 
Echo 3.) Exit 
Echo. 
echo 4.) Help 
echo. 
Echo 
Echo. 
set /p c=Selection Number: 
if %c% EQU 1 goto Login 
if %c% EQU 2 goto Register 
if %c% EQU 3 exit 
if %c% EQU 4 goto help 
if %c% EQU 5 goto Terms 
:help 
cls 
echo if you are not able to see the chat log then you must not have 
echo the file "Chatroom_reader.bat" open without this you cannot see 
echo messages sent by other users. 
echo. 
echo if you have suggestions or comments then please type "comment" 
echo. 
echo if you need assistance with any other problem you may have 
echo encountered then please type "other" to let the developer know 
echo what the problem is. otherwise type "back" to go back to the menu. 
set /p c=Option: 
if %c% EQU comment goto comments 
if %c% EQU other goto other 
if %c% EQU back goto menu 
:comments 
cls 
title Comments 
echo Enter your Username, and Password to Place a Comment 
echo. 
set /p UN=Username: 
echo. 
set /p PW=Password: 
echo. 
if NOT Exist "%PATH%\Data\Chat Settings\Users\%UN%.txt" Goto Failed 
echo %PW% >"%tmp%\chat.tmp" 
fc "%tmp%\chat.tmp" "%PATH%\Data\Chat Settings\Users\%UN%.txt" >nul 
if errorlevel==1 goto Failed 
if errorlevel==0 goto Comment 

:Comment 
cls 
echo. 
set /p SUBJECT=Subject: 
echo. 
set /p COMMENT=Comment: 
echo. 
echo %SUBJECT% : %COMMENT% >"%PATH%\Data\Chat Settings\Comments\%UN%.txt" 
goto User 
:other 
cls 
title Other 
echo Enter your Username, and Password to Place a Comment 
echo. 
set /p UN=Username: 
echo. 
set /p PW=Password: 
echo. 
if NOT Exist "C:\Users\Dan W Frye\Desktop\(-_-)\Data\Chat Settings\Users\%UN%.txt" Goto Failed 
echo %PW% >"%tmp%\chat.tmp" 
fc "%tmp%\chat.tmp" "C:\Users\Dan W Frye\Desktop\(-_-)\Data\Chat Settings\Users\%UN%.txt" >nul 
if errorlevel==1 goto Failed 
if errorlevel==0 goto OtherA 

:OtherA 
cls 
set /p OTHERC=Other Concern: 
echo. 
echo %OTHERC% >"%PATH%\Data\Chat Settings\Other\%UN%.txt" 
goto User 
:Login 
cls 
echo Enter your Username, and Password to login to the Chat Server 
echo. 
set /p UN=Username: 
echo. 
set /p PW=Password: 
echo. 

if NOT Exist "%PATH%\Data\Chat Settings\Users\%UN%.txt" Goto Failed 
echo %PW% >"%tmp%\chat.tmp" 
fc "%tmp%\chat.tmp" "%PATH%\Data\Chat Settings\Users\%UN%.txt" >nul 
if errorlevel==1 goto Failed 
if errorlevel==0 goto User 

:User 
cls 
Echo Welcome %UN%          The Current date is %date% 
echo 
echo. 
echo 1.) Chat 
echo. 
echo 2.) Logout 
echo. 
echo 3.) Change Password 
echo. 
echo 4.) Private Chat 
echo. 
echo 5.) Enter a Private Chat room 
echo. 
echo 
set /p c=Selection Number: 
if %c% EQU 1 goto chat 
if %c% EQU 2 goto Menu 
if %c% EQU 3 goto CHP 
if %c% EQU 4 goto PRIVATE 
if %c% EQU 5 goto PRIVATENTER 

:PRIVATENTER 
echo Please enter the name of the Private chat room if you do not know the name you may not  enter. 
set /p Chat= 
if %Chat% EQU scooter goto scooter 
if %Chat% EQU Cre-Br goto Cre-Br 

:Cre-Br 
cls 
set name=[%time%]%UN% 
cls 
color 02 
echo Last Message sent by %UN% \/ 
echo [%time%]%UN%:%text% 
set /p text=Say: 

echo %name% : %text% >>"%PATH%\Data\Chat Settings\Program_Files\Cre-Br.txt" 
goto Cre-Br 


:scooter 
cls 
echo %Chat% 

set name=[%time%]%UN% 

color 02 
echo Last Message sent by %UN% \/ 
echo [%time%]%UN%:%text% 
set /p text=Say: 

echo %name% : %text% >>"%PATH%\Data\Chat Settings\Program_Files\scooter.txt" 
goto scooter 

:PRIVATE 
cls 
set /p Chat=Chat Name: 

echo this is %UN%s Private chat room >>"%PATH%\Data\Chat Settings\Program_Files\%Chat%.txt" 
echo. 
echo @echo off >>"%PATH%\Data\Chat Settings\Private Chats\%Chat%.bat" 
echo color 0b >>"%PATH%H:\(-_-)\Data\Chat Settings\Private Chats\%Chat%.bat" 
echo cls >>"%PATH%\Data\Chat Settings\Private Chats\%Chat%.bat" 
echo title Message Box >>"%PATH%\Data\Chat Settings\Private Chats\%Chat%.bat" 
echo :home >>"%PATH%\Data\Chat Settings\Private Chats\%Chat%.bat" 
echo cls >>"%PATH%\Data\Chat Settings\Private Chats\%Chat%.bat" 
echo findstr /v "g91dhjt637hsuexv27niw9" "%PATH%\Data\Chat Settings\Program_Files\%Chat%.txt"  >>"C:\Users\Dan W Frye\Desktop\Batch\Chat Settings\Private Chats\%Chat%.bat" 
echo goto home >>"%PATH%\Data\Chat Settings\Private Chats\%Chat%.bat" 

goto User 

:CHP 
cls 
set /p PW=Old Password: 
echo. 
set /p NP=New Password: 
echo %NP% >"%PATH%\Data\Chat Settings\Users\%UN%.txt 
goto User 

:Register 
cls 
color 07 

echo Register (Note the username is your screen name Please use your real name or School ID EX,  CaBu56789) 
echo. 
set /p NU=Username: 
echo. 
set /p NP=Password: 
echo. 
echo %NP% >"%PATH%\Data\Chat Settings\Users\%NU%.txt" 
echo. 
cls 
goto login 

:Failed 
color 0c 
cls 
echo You have entered am invalid Username and or Password 
echo Please try again or Register for free 
pause 
goto menu 

:chat 
set name=[%time%]%UN% 
cls 
color 02 
echo Everything said here is on recored please mind your 
echo language! 
echo Last Message sent by %UN% \/ 
echo [%time%]%UN%:%text% 
set /p text=Say: 

echo %name% : %text% >>"%PATH%\Data\Chat Settings\Program_Files\ChatRoom.txt" 

goto chat 

ответ

0

% PATH% резервируется переменное окружения, документированные здесь: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/path.mspx?mfr=true

Для целей диагностики вы можете эхо этого переменный для анализа, если это имеет такое значение, предназначенные иметь :

echo %path% 
+0

Я просто сделал это, и путь он дал мне было C: \ Program Files \ Common Files \ Microsoft Shared \ Windows Live; C: \ Program Files (x8 6) \ Common Files \ Microsoft Shared \ Windows Live, C: \ windows \ system32; C: \ windows; C: \ windows \ System32 \ Wbem; C: \ windows \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Program Fil es (x86) \ Windows Live \ Shared; c: \ Users \ Dan W Frye \ Desktop \ (-_-) – FBspitty

0

В вашем коде путь был установлен после того, как он уже был разветвлен в меню. Это может работать для вас:

if %c% EQU carrie goto Menu 
if %c% EQU dad SET PATH=%PATH%;c:\Users\Dan W Frye\Desktop\(-_-)& goto menu 

Чтобы поместить пакетный файл на пути для каждого пользователя, используйте:

set path=%path%;%PUBLIC% 

и скопировать пакетный файл C:\Users\Public и запустить его оттуда.
Если ему не нужны дополнительные разрешения, он должен запускаться оттуда для каждого пользователя.

+0

И что вы имеете в виду, чтобы сделать два действия одновременно и не одно за другим? потому что я вижу, как это будет работать – FBspitty

+0

Переменная добавляется в оператор PATH, а затем переходит к метке меню:.В вашем коде строка, которая изменяет инструкцию PATH при входе в систему, никогда не выполняется. – foxidrive

+0

хорошо, что @ Durry42 сказал, что «SET» progpath = c: \ Users \% username% \ Desktop \ (-_-) "" есть ли способ сделать то же самое для жесткого диска? например: SET progpath =% HARDDISK% \ Users \% username% \ Desktop \ (-_-) – FBspitty

0

Как упоминалось @Jermu Virtanen, переменная %PATH% - это системный путь к системе Windows ... вы не должны использовать/изменять ее, если вы действительно не знаете, что делаете. Итак, вместо использования %PATH% используйте что-то наподобие %PROGPATH%.

Также, как указано @foxdrive, если пользователь вводит «папа», он перейдет в «меню» перед установкой переменной пути. И снова, если вы вместо этого выбрали «Админ», а затем «Список пользователей», он снова вызовет путь, не установив его первым.

Вы можете автоматизировать некоторые параметры входа или пути, захватив доменное имя компьютера %userdomain% и текущего пользователя %username%.

Т.е.;

SET "progpath=c:\Users\%username%\Desktop\(-_-)" 
+0

Я бы сказал, что это сработает для меня, но в школе, в которую я иду, есть сетевая настройка, так что, как мне кажется, "H: \ (-_-)", поэтому я установил его как% PATH% \ Data \ Chat Settings \ ', чтобы установить путь. «% PATH%» изменяется с компьютера на компьютер. сеть школ не находится на 'C:' – FBspitty

+0

других, чем проблема школьной сети, что вы сказали! но ... он не войдет в систему даже тогда, когда ERRORLEVEL == 0 он перейдет в сбой, и я не понимаю, почему – FBspitty

+0

Использование PATH путем добавления другой папки в конец является прекрасным и является точкой переменной PATH. Что означает Durry42, так это то, что вы не должны использовать системные переменные, такие как 'path'' date' 'time' и т. Д. Как общие переменные для других целей. @ Durry42, пожалуйста, отредактируйте свой ответ, чтобы отразить это. Я отредактировал свой ответ с возможным решением проблемы. – foxidrive

Смежные вопросы