1

以前在 Windows 7 中,我能够将 My Documents 文件夹的文件路径更改为网络映射(例如 H:\John Doe Documents)。由于我们已切换到 Windows 7,因此我不得不使用一种解决方法,将 C 驱动器上的文件夹中的链接文件创建到映射位置,并在文件实际链接之前将其包含在“我的文档”库中。

我们当前的文件结构为 -\\servername\homefolder\%username%\John Doe Documents\\servername\homefolder\%username%\johndoedocuments. 创建符号链接时,我需要覆盖这两个文件夹。

这是我目前使用的脚本

@echo off

mkdir c:\Documents
echo.
echo.

echo Right click My Documents and add C:\Documents to the Library Locations.
echo.
echo.

pause
rd C:\Documents
mklink /D C:\Documents \\servername\homefolder\%username%\*documents\

目前这不起作用。如果我删除 *documents\ 它确实有效。我尝试这样做的原因是因为我们还将 Outlook 的用户 pst 文件存放在 \%username% 文件夹中,我们不希望用户看到该文件夹​​并可能将其删除。宁愿他们直接进入文档文件夹。

有什么帮助吗?希望这是我想念的简单的东西。提前致谢!

4

2 回答 2

2

您可以使用if exist ...来检测存在哪个路径。

if exist "\\servername\homefolder\%username%\John Doe Documents" (
    mklink /D C:\Documents "\\servername\homefolder\%username%\John Doe Documents\"
    goto :eof
)
if exist "\\servername\homefolder\%username%\johndoedocuments" (
    mklink /D C:\Documents "\\servername\homefolder\%username%\johndoedocuments\"
    goto :eof
)

更新。

我认为您可以以这种方式使用通配符

for /d %%A in (\\servername\homefolder\%username%\*documents) do (
    if exist "%%~fA" (
        mklink /D C:\Documents "%%~fA"
        goto :eof
    )
)
于 2015-10-15T20:04:56.157 回答
0

进行了一些更改,要使其正常工作,您必须首先在 C 中创建 Documents 文件夹,将其添加到库中,然后创建链接;否则它将无法工作,因为网络驱动器没有被索引并且您无法将非索引文件添加到库中。

这是完成的工作代码,非常感谢,德米特里!你能解释一下这些通配符是什么吗?抱歉,我仍然在处理很多cmd命令。我了解大部分内容,除了%%A%%~fA部分:)

@echo off
mkdir C:\Documents
pause
for /d %%A in (\\servername\homefolder\%username%\*documents) do (
    if exist "%%~fA" (
        rd C:\Documents
        mklink /D C:\Documents "%%~fA"
        goto :eof
    )
)
于 2015-10-16T12:41:51.537 回答