替换“更改”目录中的文件

时间:2013-12-13 06:27:17

标签: batch-file cmd scite

我知道标题没有意义所以我会试着详细说明:

我有一个名为My App.exe的程序,当我运行它时,它会在AppData的文件夹中创建一个文件。它创建的文件夹的名称因机器而异。例如:

当My 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,batch或SciTE脚本),它将获取更新的settings.dat文件并覆盖旧文件。
我使用XCOPY和Y开关覆盖而没有提示:

  

XCOPY settings.dat“%LocalAppData%\ Kazankoph \ My_App.exe_Url_6f47ntd26lwubpr3hunvt2m67sf1xtq2 \ 1.2.0.0”/ y

但该代码的问题在于它只适用于那台计算机 我想要一个可以在任何计算机上运行的代码,无论32个字符代码如何。


这样的事情:

  

XCOPY settings.dat“%LocalAppData%\ Kazankoph \ My_App.exe_Url_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ 1.2.0.0”/ y

当然这个没有用,但你明白了。
有人有什么建议吗?

1 个答案:

答案 0 :(得分: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