是否可以通过Windows命令观察文件的“可用性状态”?

时间:2019-10-01 12:12:08

标签: windows powershell batch-file onedrive

我们的定制软件在Microsoft OneDrive锁定和同步正在使用的文件方面存在问题。因此,我们决定不支持云保存文件。想法是,当用户将负载指向或保存在同步到云的位置时,弹出窗口将通知他们不支持该弹出窗口。

我的问题是确定上述位置。虽然最简单的方法是查找文件夹名称“ OneDrive”,但由于可以更改文件夹的名称,因此我觉得这并非万无一失。

我考虑过检查文件是否具有“可用性状态”,因为这会在资源管理器中显示该文件是在云中,本地还是已启用同步的状态。 不幸的是,除了视觉上,我找不到其他方法来检查该状态,因为我无法在注册表,命令提示符甚至事件日志中手动找到对该功能的引用。

示例图片:

是否有命令或方法来像attrib命令那样找出文件或文件夹的这种状态?作为最后的手段,也许Powershell可以解决我的问题?

编辑
Gerhard Barnard 的解决方案对我有用。这是视觉效果。

(感谢编辑将这些链接转换为图片,同时我也提出了足够的要点,以使我相信我)
https://i.imgur.com/VSGvSKD.jpg
https://i.imgur.com/P5reVIC.jpg

使用attrib也可以使用。
https://imgur.com/Yejeb4r

aschipfl 所述,由于Microsoft文档似乎已过时,但未知的原因,您的系统上可能缺少这些功能,但是测试正在进行中。

EDIT2:
我相信要使这些功能可用,您应该已安装OneDrive。它通常从C:\ Users [用户名] \ AppData \ Local \ Microsoft \ OneDrive \ OneDrive.exe运行。我正在考虑仅查找此文件,而不是在保存并提示用户之前检查文件夹内容。

1 个答案:

答案 0 :(得分:0)

文件属性在脱机时设置为脱机。因此,您可以获取未设置脱机属性的文件的属性:

for /f "delims=" %%i in ('dir /b /a-o') do echo %%i Available file.

与显示脱机文件明显相反:

for /f "delims=" %%i in ('dir /b /a:o') do echo %%i Offline file.

要查看有关属性的更多信息,请从cmd.exe运行dir /?并查看/A开关帮助。

enter image description here