использование подстановочного знака в скрипте в имени каталога

Я пишу сценарий, в котором я хочу скопировать файл из своего каталога в «Пуск\Программы\Автозагрузка» на компьютере. Моя проблема - этот скрипт для нескольких компов и почему-то на каждом администратор имеет разное имя, поэтому путь "C:\Documents and Settings*administrator*\Start Menu\Programs\ Стартап» подходит не всем.

Я ищу способ использовать подстановочный знак в имени каталога. что-то вроде: "C:\Documents and Settings\administrator*\Start Menu\Programs\Startup", поэтому мой скрипт будет работать на всех компьютерах. (имя заранее неизвестно, но я знаю, что оно будет начинаться со слова «администратор»)

Любые идеи? Спасибо,

Тамар


person Tamar    schedule 01.12.2010    source источник


Ответы (2)


Вероятно, есть более умные способы, но один из них — использовать команду for. Что-то вроде следующего:

cd "c:\documents and settings"
for /D %%f in (administrator*) do copy yourfile "%%f\start menu\programs\startup"
person Mark Wilkins    schedule 01.12.2010

Может быть переменная

%userprofile%

может быть полезно для вас. Он дает вам прямой путь «C:\Documents and Settings\CurrentLoggedUser».

person Nicolas    schedule 01.12.2010
comment
Я пытаюсь написать: fileCopy(c:\MyDir\MyFile, %userprofile%\start menu\Programs\Startup), и это не работает. что не так? - person Tamar; 01.12.2010
comment
попробуйте повторить %userprofile%, чтобы увидеть, что вы получите. Возможно, вам нужно использовать кавычки: %userprofile%\start menu\Programs\Startup - person Nicolas; 01.12.2010
comment
@Tamar: %userprofile% не обязательно будет доступен таким образом в среде сценариев, отличной от cmd.exe. Это переменная среды, и к ней нужно обращаться как таковой. Например в vbscript: userprofile=createobject( "WScript.Shell" ).expandenvironmentstrings("%userprofile%") - person sorpigal; 02.12.2010