Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   %userprofile% даёт несуществующий путь (http://forum.oszone.net/showthread.php?t=302968)

gurlov 28-07-2015 10:40 2533277

%userprofile% даёт несуществующий путь
 
Здравствуйте.
Сделал простецкий bat-файл:
Код:

@echo off
echo %userprofile%
xcopy d:\log.txt "%userprofile%" /d /y /s /v
pause

Сохранял его и в 866 кодировке и в 1251, результат всегда один:
Путь %userprofile% определяется как C:\Users\Ђавс¬ и ни какого копирование по данному пути не производиться, ведь такого пути реально не существует.
Что это такое? как быть? прошу помощи
P.S.: В реальности путь профиля C:\Users\Артём

Iska 28-07-2015 11:38 2533296

Цитата:

Цитата gurlov
Путь %userprofile% определяется как C:\Users\Ђавс¬ »

Как Вы это определили — так выглядит на экране? Или делали вывод в файл? Что говорит команда «chcp»?

Georgio 28-07-2015 11:46 2533303

Цитата:

Цитата gurlov
Сохранял его и в 866 кодировке и в 1251, результат всегда один... »


Если в тексте пакетного файла нет кириллицы, то это не имеет смысла, так как файлы будут абсолютно идентичными (ANSI-кодировка).



Цитата:

Цитата gurlov
...Путь %userprofile% определяется как C:\Users\Ђавс¬ и ни какого копирование по данному пути не производиться, ведь такого пути реально не существует. »


Такого не должно быть, если, конечно, это не связано с какими-либо настройками консоли, записанными в реестр.



Цитата:

Цитата gurlov
Код:

xcopy d:\log.txt "%userprofile%" /d /y /s /v
»


Зачем Вам ключ "/s"? С этим ключом Вы не сможете копировать, например, так:
Код:

xcopy с:\log.txt "%userprofile%" /d /y /s /v
,
так как в результате получите ошибку:
Цитата:

Невозможно выполнить циклическое копирование
Скопировано файлов: 0.
.

gurlov 28-07-2015 11:52 2533304

Цитата:

Цитата Iska
Как Вы это определили — так выглядит на экране? Или делали вывод в файл? »

так выглядит на экране, а если в файл (echo %userprofile% > tt.txt) то C:\Users\?*ўбї
Цитата:

Цитата Iska
Что говорит команда «chcp»? »

Текущая кодовая страница: 866

Georgio 28-07-2015 12:18 2533309

Цитата:

Цитата gurlov
...Путь %userprofile% определяется как C:\Users\Ђавс¬ и ни какого копирование по данному пути не производиться, ведь такого пути реально не существует. »


Команда "XCOPY" создаёт несуществующие пути, поэтому, если всё так, как Вы описываете, то в Вашем случае такой путь будет создан после запроса
Цитата:

Что означает C:\Users\Ђавс¬:
имя файла или каталога
(F = файл, D = каталог)?
или без такового при наличии ключа "/i".

Поэтому мне Ваше описание проблемы кажется странным и неполным.

Iska 28-07-2015 12:31 2533313

Цитата:

Цитата gurlov
а если в файл (echo %userprofile% > tt.txt) то C:\Users\?*ўбї »

Упакуйте этот файл в архив и прикрепите к сообщению.

gurlov 28-07-2015 17:22 2533419

Вложений: 1
Цитата:

Цитата Georgio
Команда "XCOPY" создаёт несуществующие пути, поэтому, если всё так, как Вы описываете, то в Вашем случае такой путь будет создан после запроса »

да вы правы так и происходит, если запускать с админскими правами и отвечать на вопрос F или D то создаётся этот путь C:\Users\Ђавс¬ (я просто не стал вдаваться в подробности). но мне то нужен уже существующий C:\Users\Артём
Цитата:

Цитата Georgio
Такого не должно быть, если, конечно, это не связано с какими-либо настройками консоли, записанными в реестр. »

чутьё мне подсказывает, что здесь собака зарыта. Какие по вашему настройки могут повлиять? где настройки консоли в реестре?
Цитата:

Цитата Iska
Упакуйте этот файл в архив и прикрепите к сообщению. »

сделано.

gurlov 28-07-2015 17:46 2533427

Ах ты ж :angry2: !!!!!!
Вот в чём причина: На компьютере стоит программа CLINK, которая меняет настройки CMD (в частности сохраняет историю команд), она то и мешала адекватно обрабатывать %userprofile%. Снёс программу - всё отлично работает.
Georgio, спасибо за наводку, про настройки CMD

Georgio 28-07-2015 18:06 2533431

Цитата:

Цитата gurlov
...в частности сохраняет историю команд... »


Историю команд в течение консольной сессии всегда можно увидеть, выполнив команду
Код:

doskey /history
.

Iska 28-07-2015 18:14 2533435

…или просто нажав «F7».

gurlov 28-07-2015 18:14 2533436


Iska
Цитата:

Цитата Georgio
Историю команд в течении консольной сессии всегда можно увидеть, выполнив команду »

нет, эта прога сохраняет историю команд глобально, даже после перезагрузки компьютера.
Если посоветуете ещё какой-то способ сохранять историю после закрытия сессии - буду признателен, так как CLINK, видимо, придётся сносить.((

Iska 28-07-2015 18:15 2533437

Цитата:

Цитата gurlov
нет, эта прога сохраняет историю команд глобально, даже после перезагрузки компьютера.
Если посоветуете ещё какой-то способ сохранять историю после закрытия сессии… »

Far Manager с включённым автосохранением конфигурации. Попробуйте.


Время: 01:41.

Время: 01:41.
© OSzone.net 2001-