[英]Symlink all directories whose names contain word (Windows Batch)
我有一個目錄A,其中包含一堆子目錄,還有一個空目錄B。我想創建一個.bat文件,將名稱為“ april”(僅頂層目錄)的目錄A中的所有子目錄符號鏈接到目錄B。可能嗎?
到目前為止,我有:
echo off
setlocal EnableDelayedExpansion
title Updating Directories...
if exist "C:\path\to\directory\a" (
echo Updating Directories...
set "dira=C:\path\to\directory\a"
set "dirb=C:\path\to\directory\b"
for /f "usebackq delims=|" %%f in (`dir /b "!dira!"`) do (mklink /d "!dirb!\%%f" "!dira!\%%f")
title Symlinks Created^^!
echo Done^^!
pause
) else (
echo Cannot find Parent Directory.
pause
)
這可行,但是它將目錄A中的所有子目錄符號鏈接到目錄B。例如,我可以通過某種方式搜索名稱包含“ april”的頂級目錄,返回列表,然后僅對它們進行符號鏈接?
不知道為什么要批處理文件。 只需鍵入命令。
for /f "delims=" %A in ('dir /b /ad "%userprofile%\desktop\*u*.*"') Do mklink /d "%userprofile%\desktop\b\%~nxA" "%A%
這將在桌面上名為B的文件夾中創建一個鏈接(因此請首先創建一個鏈接),以指向桌面上名稱中包含字母u的任何文件夾。 看到dir /?
。
請注意,在Windows(NT系列)中,通配符運算符是不同於Dos的正則表達式。
?*net*.*
顯示所有包含net的文件,但不以net開頭。
感謝@CatCat,我得以弄清楚。 為了后代的緣故,這是現在正在工作的東西:
echo off
setlocal EnableDelayedExpansion
title Updating Directories...
if exist "!userprofile!\path\to\directory\a" (
echo Updating Directories...
set "dira=!userprofile!\path\to\directory\a"
set "dirb=!userprofile!\path\to\directory\b"
for /f "usebackq delims=|" %%f in (`dir /b "!dira!\*april*.*"`) do (mklink /d "!dirb!\%%f" "!dira!\%%f")
title Symlinks Created^^!
echo Done^^!
pause
) else (
echo Cannot find Parent Directory.
pause
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.