以前在Windows 7中,我能够将“我的文档”文件夹的文件路径更改为网络映射(来自H:\ John Doe Documents)。由于我们已经切换到Windows 7,因此我必须使用一种解决方法,将链接文件从C驱动器上的文件夹转换为映射位置,并在文件实际链接之前将其包含在My Documents库中。
我们当前的文件结构为 - \\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\
目前这不起作用。如果我删除*文件\它确实有效。我尝试这样做的原因是因为我们还在\%username%文件夹中存放了Outlook的用户pst文件,我们宁愿让用户看不到该文件夹并可能删除它。宁愿他们直接进入文档文件夹。
有任何帮助吗?希望它很简单,我很想念。提前致谢!
答案 0 :(得分:1)
您可以使用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
)
)
答案 1 :(得分: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
)
)