gpt4 book ai didi

windows - 从卷影副本备份

转载 作者:可可西里 更新时间:2023-11-01 10:19:14 25 4
gpt4 key购买 nike

所以,我想使用批处理脚本从卷影副本进行备份。这就是我到目前为止所拥有的:

vssadmin list shadows | findstr /C:"Volume da Cópia de Sombra"

输出:

     Volume da Cópia de Sombra: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
Volume da Cópia de Sombra: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2
Volume da Cópia de Sombra: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy5

我只需要获取 findstr 返回的最后一行中的路径,但我真的不知道如何完成它。

获取路径后在末尾添加\(只有路径以\结尾才会生成符号链接(symbolic link))生成符号链接(symbolic link)到

mklink c:\shadowcopy /d %path%

所以,我迷失在其中。

我找到了这个问题的答案:

Batch file to output last line of findstr

但是伙计,批处理语法一团糟,我不理解答案中的一行代码以使其适应我的项目。

有人可以帮助我并详细解释我需要做什么(或代码,如果你提供的话),这样我就可以理解我在做什么,而不是仅仅粘贴和复制,谁知道呢,做一些改进/变化。

最佳答案

每当你想捕获命令的输出时,使用for/f。我建议 ? 在这种情况下是一个方便的分隔符。

此代码段将为所有卷影副本创建链接。

if not exist c:\shadowcopy md c:\shadowcopy
for /f "tokens=2 delims=?" %%I in ('vssadmin list shadows ^| find "GLOBALROOT"') do (
mklink /d c:\shadowcopy\%%~nxI \\?%%I\
)

此代码段将从影子列表的最后匹配行创建一个链接。

for /f "tokens=2 delims=?" %%I in ('vssadmin list shadows ^| find "GLOBALROOT"') do (
set "target=\\?%%I\"
)
mklink /d c:\shadowcopy %target%

看出区别了吗?在第一个代码块中,mklinkfor/f 循环的每次迭代中触发并创建许多符号链接(symbolic link);而在第二个 block 中,set 会在每次迭代时覆盖存储在 %target% 中的值。 mklink 在循环的外部 运行,因此只创建一个符号链接(symbolic link)。我认为这就是您正在寻找的秘诀。

在 cmd 控制台中,输入 help for 以获得有关 for/f 循环的更多信息。

关于windows - 从卷影副本备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33802981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com