当我运行这段代码时。fc
说它没有找到任何这样的目录。这就是它被绊倒的地方,在 fc "C:\Users\%username%\AppData\LocalLow\Amistech\My Summer Car\defaultES2File" "Saves\backup_%curdt%\defaultES2File"
. 如果你想要的话,我会添加更多的代码,但这是最重要的一点。
:check
echo checking
attrib "data.txt" -h
pause
fc "C:\Users\%username%\AppData\LocalLow\Amistech\My Summer Car\defaultES2File" "Saves\backup_%curdt%\defaultES2File"
pause
这里是目录存在的证明https:/drive.google.comfiled1kp02bvZu9XA-sV2wD8HQWUfKUIuJUfrjview?usp=分享。
这里是控制台的输出。我不知道为什么,但它显示在大写,我不知道这是否重要。
https:/drive.google.comfiled1WXzosPaMY5GD0KcBg74ZvOzX0sgeZHXVview?usp=sharing。
你的问题是你没有使用正确的文件名。
你的文件是一个文本文件,应该用以下几个字来命名。.txt
扩展名。
"C:\Users\%username%\AppData\LocalLow\Amistech\My Summer Car\defaultES2File.txt"
除此之外,我还建议你在对比中也使用备份文件的绝对路径。目前 "Saves\backup_%curdt%\defaultES2File"
是相对于命令运行时的当前目录而言的。如果你事先专门把目录改到了正确的位置,这样做也许可以,但这样做会更安全。至少,你可以为当前目录使用一个变量,例如 "%CD%\Saves\backup_%curdt%\defaultES2File.txt"
,或者 "%__CD__%Saves\backup_%curdt%\defaultES2File.txt"
. 甚至有可能你的备份会进入一个相对于正在运行的批处理文件的位置,所以你可以使用。"%~dp0Saves\backup_%curdt%\defaultES2File.txt"
以确保其确实如此,并且不受当前目录变化的影响。
在新版本的Windows中,你应该能够在资源管理器功能区中做到这一点,通过将复选标记切换到 文件名扩展名 在'显示隐藏'部分。在早期版本的Windows中,您可能需要进入 "文件夹和搜索选项 "设置,以取消勾选 "隐藏"。隐藏已知文件类型的扩展名 复选框。