2010-04-08 3 views
0

У меня есть пакетный файл, который запускается при выполнении самораспаковывающегося файла.Сохранение пути пакетного файла на локальный жесткий диск

Самораспаковывающиеся файлы должны быть скопированы в конкретный каталог на жестком диске.

В пакетном файле пользователю задается путь (если он не находится в месте по умолчанию).

Часть пакетного файла:

Теперь мой вопрос.

Если пользователь затем вводит новый путь, возможно ли сохранить этот путь. Итак, когда он снова выполняет самораспаковывающийся файл, он может запомнить этот новый путь?

+0

Вы знаете, что существует переменная среды, называемая '% ProgramFiles%', которая избавляет вас от необходимости жестко кодировать путь? – Joey

+0

ОК, но у меня проблема, потому что в пути есть знак «&». Вот путь: C: \ Program files \ Prog & sample \ Я попытался сохранить путь к текстовому файлу с кавычками, но это не помогло ни – Brian

ответ

1

Вы можете сохранить путь к некоторому файлу при% USERPROFILE%, делая

echo %PROGRAMPATH% > "%USERPROFILE%\AppData\Local\progpath.txt" 

, а затем прочитать его, делая

set /p PROGRAMPATH=<"%USERPROFILE%\AppData\Local\progpath.txt" 

Полный пакет будет выглядеть следующим образом

@ECHO OFF 

set PROGRAMPATH=C:\Program Files\ 

IF EXIST "%USERPROFILE%\AppData\Local\progpath.txt". (
    set /p PROGRAMPATH=<%USERPROFILE%\AppData\Local\progpath.txt 
) 

IF NOT EXIST "%PROGRAMPATH%\program.exe". (
    echo Program folder was not found. Please enter the path for Program 
    set /p PROGRAMPATH=Path: 
) 

echo %PROGRAMPATH%>"%USERPROFILE%\AppData\Local\progpath.txt" 

echo Copying data to "%PROGRAMPATH%"... 
copy /Y "*.txt" "%PROGRAMPATH%" 
+0

Hi Ghostrider, Спасибо, похоже, он мог сделать трюк. Но не могли бы вы показать, что я должен был поставить линии? Это не работает для меня, поэтому, возможно, я вставил строки в неправильные места. – Brian

+0

hmmm, он пишет путь красиво к progpath.txt, но он никогда не использует его. Всегда спрашивайте меня о PROGRAMPATH – Brian

+0

Убедитесь, что вы используете встроенное в echo (а не echo.exe, которое поставляется с cygwin или аналогичным). Он работал для меня в Windows 7. YMMV – Ghostrider

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