首页 > 解决方案 > FC 命令找不到现有目录

问题描述

当我运行代码时,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.com/file/d/1kp02bvZu9XA-sV2wD8HQWUfKUIuJUfrj/view?usp=sharing

这是控制台输出。我不知道为什么,但它以大写字母显示,我不知道这是否重要。

https://drive.google.com/file/d/1WXzosPaMY5GD0KcBg74ZvOzX0sgeZHXV/view?usp=sharing

标签: windowsbatch-file

解决方案


您的问题是您没有使用正确的文件名。

您的文件是文本文件,应使用.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 中,您应该能够在资源管理器功能区中执行此操作,方法是File name extensions在“显示/隐藏”部分切换复选标记。在早期版本的 Windows 中,您可能需要进入“文件夹和搜索选项”设置以取消选中该Hide extensions for known file types复选框。


推荐阅读