2013-12-13 3 views
2

Я знаю, что название не имеет смысла, так что я постараюсь подробно:Заменить файл в «изменение» каталог

У меня есть программа под названием My App.exe и когда я запускаю его, он создает файл в папке в AppData. Имя создаваемой папки изменяется для каждой машины. Пример:

Когда мой App.exe запускается на одном компьютере, он создает этот файл:

% LocalAppData% \ Kazankoph \ My_App.exe_Url_3p43oix65iqigwb4lndfi4m34sf1xjg3 \ 1.2.0.0 \ settings.dat

Когда его запустить на другом компьютере, он создает этот файл:

% LocalAppData% \ Kazankoph \ My_App.exe_Url_6f47ntd26lwubpr3hunvt2m67sf1xtq2 \ 1.2.0.0 \ settings.dat

только вещи, которые остаются теми же, являются родительская папка «Kazankoph», папка ребенка «1.2.0.0» и имя файла settings.dat

кажется, что текст, который приходит после того, как «My_App .exe_Url_»всегда имеет длину 32 символов, и генерируется случайным образом


Так моя дилемма:
Мне нужно создать команду (с помощью CMD, партии или SciTE скрипт), который будет принимать обновленный файл и settings.dat перезаписать старый.
Я использовал XCOPY с переключателем Y перезапись без подсказки:

XCOPY settings.dat "% LocalAppData% \ Kazankoph \ My_App.exe_Url_6f47ntd26lwubpr3hunvt2m67sf1xtq2 \ 1.2.0.0"/у

Но проблема с этим кодом заключается в том, что он работает только для одного компьютера.
Я хочу код, который будет работать на любом компьютере, независимо от 32-символьного кода.


что-то вроде этого:

XCOPY settings.dat "% LocalAppData% \ Kazankoph \ My_App.exe_Url_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ 1.2.0.0"/у

Конечно, это один Безразлично» t, но вы получите эту идею.
У кого-нибудь есть предложения?

ответ

1

Запустите это, и он должен предоставить вам папку и скопировать файл из текущего каталога в папку.

@echo off 
for /f "delims=" %%a in (' dir /b /s /a-d "%LocalAppData%\Kazankoph\Settings.dat" ') do set "folder=%%~dpa" 
echo copying settings.dat to "%folder%" 
copy /y "settings.dat" "%folder%\" 
pause 
+0

Работает так, как вы сказали. Есть ли способ вернуть результат обратно в команду? например: XCOPY settings.dat "OUTPUT"/y – Kazankoph

+0

См. мой отредактированный ответ. Вместо xcopy я использовал копию. – foxidrive

+0

Так просто, но эффективно. – Kazankoph

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

  • Нет связанных вопросов^_^