Что нового

А переменные из CMD работают???

millgan

Новичок
Сообщения
42
Репутация
2
FileCopy ( "\\10.12.3.51\Files_server\ИТ отдел\Открытая\diss\ibases.v8i", "c:\%USERPROFILE%\Application Data\1c\1cv81\" ,8 )

нужно провести вот такую команду. Сейчас создается папка %USERPROFILE%, а не должна( файл должен просто копироваться в директорию с активным пользователем.

Обьясните пожалуйста как реализовать? какая переменная пользователя в XP 7-ке и Vista?
 

asdf8

Скриптер
Сообщения
564
Репутация
152
Насчет шары не скажу, а с переменными типа %USERPROFILE% надо работать так:

Код:
Opt("ExpandEnvStrings", 1)
FileCopy ( "\\10.12.3.51\Files_server\ИТ отдел\Открытая\diss\ibases.v8i", "%USERPROFILE%\Application Data\1c\1cv81\" ,8 )
Opt("ExpandEnvStrings", 0)
 

BIOS

Жизнь - игра. График - супер, но сюжет - хреновый.
Сообщения
173
Репутация
69
Или вариант:
FileCopy ( "\\10.12.3.51\Files_server\ИТ отдел\Открытая\diss\ibases.v8i", EnvGet("USERPROFILE")&"\Application Data\1c\1cv81\" ,8 )
 

asdf8

Скриптер
Сообщения
564
Репутация
152
Или посмотреть справку, "%USERPROFILE%\Application Data" равнозначна автоитовскому макросу @AppDataDir
 
Автор
M

millgan

Новичок
Сообщения
42
Репутация
2
asdf8 сказал(а):
Насчет шары не скажу, а с переменными типа %USERPROFILE% надо работать так:

Код:
Opt("ExpandEnvStrings", 1)
FileCopy ( "\\10.12.3.51\Files_server\ИТ отдел\Открытая\diss\ibases.v8i", "%USERPROFILE%\Application Data\1c\1cv81\" ,8 )
Opt("ExpandEnvStrings", 0)
Спасибо получилось))) если не трудно обьясните что означает Opt("ExpandEnvStrings", 1) ?
И если использовать переменную %APPDATA% то строку можно сократить до -
%APPDATA%\1c\1cv81\ -?
 

asdf8

Скриптер
Сообщения
564
Репутация
152
обьясните что означает Opt("ExpandEnvStrings", 1) ?
из справки :

Код:
Способ интерпретации символов %. Стандартный режим интерпретирует % литерально. Однако, можно встроить переменные типа %environment% непосредственно внутрь строки. Например:

"Папка temp - %temp%"

 

Стандартное значение 0:

1 = подставить переменную среды (как в AutoIt v2)
0 = не подставлять
Стандартный способ подстановки переменных без использования этой опции следующий:

    "The temp directory is: " & EnvGet("temp")
И если использовать переменную %APPDATA% то строку можно сократить до -
%APPDATA%\1c\1cv81\ -?
да, или не пользоваться Opt("ExpandEnvStrings", 1):

Код:
@AppDataDir & "\1c\1cv81\"
 
Автор
M

millgan

Новичок
Сообщения
42
Репутация
2
Opt("ExpandEnvStrings", 1)
FileCopy ( "\\10.12.3.51\Files_server\ИТ отдел\Открытая\diss\ibases.v8i", "@AppDataDir & "\1c\1cv81\" ,8 )
Opt("ExpandEnvStrings", 0)

Блин файл не перезаписывается(((( тоесть если он там был уже то не заменяется, как исправить?

- пихаю в начало DirRemove(@AppDataDir & "\1c\1cv81\" , 1)
раздел удаляется и потом вообще не создается и ничего не копируется
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
millgan [?]
тоесть если он там был уже то не заменяется, как исправить
Поставьте последний параметр 9.(FileCopy ( ..., ..., 9))
 
Автор
M

millgan

Новичок
Сообщения
42
Репутация
2

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
millgan [?]
но ведь параметра 9 даже в справке нет
Русская справка FileCopy:
Замечания
...
Например, объединение значение флага (1 + 8 ) = 9 позволяет перезаписать имеющийся файл, проверить структуру папок получателя и если она недостаточна для выполнения копирования, то автоматически дополнить ее.
Английская справка FileCopy:
Remarks
...
For instance the combined flag '9' (1 + 8 ) overwrites the target file and pre-checks for the destination directory structure and if it doesn't exist creates it automatically.
Это разве нет?
 
Верх