我知道标题没有意义所以我会试着详细说明:
我有一个名为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个字符长,并且是随机生成的
<小时/> 所以我的困境:
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
当然这个没有用,但你明白了。
有人有什么建议吗?
答案 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