Re: Nazwa usera - czy występuje jako zmienna?

Autor: Marsjanin <08.2006.usenet_at_marsjanin.tk>
Data: Sat 21 Oct 2006 - 23:31:53 MET DST
Message-ID: <1p2zytdz6s4ui$.dlg@marsjanin.tk>
Content-Type: text/plain; charset="iso-8859-2"

  Rok 2006 - październik. Dokładnie to sobota, 21-go. Nieco po 20-ej.
  Nagle zza rogu Marsjanin wrzuca na pl.comp.os.ms-windows.winnt:

>> Jest zmienna username oraz userprofile.
> Dzięki za trop, dalej mam nadzieję wygooglać więcej szczegółów.

Ech. Zmienna username przydatna średnio, za to z userprofile bingo.
Jednak dalej mam problemy. :-(

Założenia:

Jest katalog X:\Psi\
W nim Psi.exe oraz inne pliki, oraz katalog PsiData\ (czyli:
X:\Psi\Psidata\ ) i tenże trzeba przenieść do %userprofile%.

Potem uruchomić Psi, a po jego zakończeniu przenieść katalog PsiData\
z powrotem.

Spłodziłem plik *.bat ... niestety, nie chce działać za bardzo. *.bat
, nie *.cmd bo musi to hulać również pod Win9x. Pliczek umieszczam w
X:\ . Oto on (dodaję komentarze):

>8---->8---->8---->8---->8---->8---->8---->8---->8---->8---->8---->8

@echo off

rem Sprawdzam, czy istnieje folder z profilem użytkownika. De facto,
rem sprawdzam, czy mam do czynienia z WinNT czy z Win9x. Jak z
rem Win9x, omijam kopiownaie, uruchamiam Psi i wyłączam skrypt, nie
rem czekając na zakończenie Psi (bo i po co).

if not exist "%userprofile%\*.*" goto win9x

rem Na wszelki wypadek sprawdzam, czy profil, do którego jestem
rem zalogowany również nie używa Psi. Jeśli używa - zmieniam mu
rem nazwę.

if exist "%userprofile%\PsiData\" move "%userprofile%\PsiData\" "PsiDataTemp"

rem Kopiuję moje PsiData\ do profilu, uruchamiam, czekam i kopiuję z
rem powrotem.

xcopy "Psi\PsiData" "%userprofile%" /e /h /r /y
start /wait "Psi\Psi.exe"
xcopy "%userprofile%\PsiData" "Psi" /e /h /r /y

rem Usuwam po sobie śmieci.

del /f /q "%userprofile%\PsiData\"

rem Jeśli istniał poprzedni, cudzy profil, przywracam go.

if exist "%userprofile%\PsiDataTemp\" move "%userprofile%\PsiDataTemp\" "PsiData"
goto close

: win9x
start "Psi\Psi.exe"

:close
cls

>8---->8---->8---->8---->8---->8---->8---->8---->8---->8---->8---->8

...i to właściwie na tyle. Tylko, że nie działa. Odpalony na profilu,
gdize nie ma Psi, kopiuje zamiast PsiData\ , *zawartość* PsiData\ a
odpalając Psi, odpala zamiast niego w nowym oknie command na zadanym
dysku (tu: X: ). Wpisanie exit powoduje zamknięcie obu okien batch, a
w X:\Psi zamiast PsiData\ , pojawia się *zawartość* PsiData\.

Może to literówka lub kilka, ale nie mam pomysłu... Co do zastosowań
typu cudzysłowy, gwiazdki, backslashe: sprawdzałem to w cmd,
specjalnie tworząc puste katalogi i pod Win 2000 to działa... Niestety
całość "do kupy" działać nie chce. :-(

-- 
  Pozdrawiam,  Marsjanin.  Tlen.pl :  marsjanin-tk
  Nie zawsze bluescreen pod windą jest przez windę !!!
  Nic nie gra. Cudowna cisza...  :-]
Received on Sat Oct 21 23:35:06 2006

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Sat 21 Oct 2006 - 23:42:03 MET DST