2

我知道标题没有意义,所以我将尝试详细说明:

我有一个名为 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、批处理或 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

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

4

1 回答 1

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
于 2013-12-13T06:56:18.137 回答