ide*_*ide 2 windows powershell scripting function mklink
有很多子文件夹,只能为二阶子文件夹创建目录连接。
当前文件夹结构的某些部分如下所示
C:\MainFolder>tree
Folder PATH listing for volume C System
C:.
????1stSub-FolderA
? ????2ndSub-FolderA
? ????2ndSub-FolderB
????1stSub-FolderB
????2ndSub-FolderA
????2ndSub-FolderB
D:\MainFolder-Copy>tree
Folder PATH listing for volume Dosya
D:.
????1stSub-FolderA
????1stSub-FolderB
Run Code Online (Sandbox Code Playgroud)
每个文件夹的手动编码:
C:\>mklink /j D:\MainFolder-Copy\1stSub-FolderA\2ndSub-FolderA C:\MainFolder\1stSub-FolderA\2ndSub-FolderA
Junction created for D:\MainFolder-Copy\1stSub-FolderA\2ndSub-FolderA <<===>> C:\MainFolder\1stSub-FolderA\2ndSub-FolderA
C:\>mklink /j D:\MainFolder-Copy\1stSub-FolderA\2ndSub-FolderB C:\MainFolder\1stSub-FolderA\2ndSub-FolderB
Junction created for D:\MainFolder-Copy\1stSub-FolderA\2ndSub-FolderB <<===>> C:\MainFolder\1stSub-FolderA\2ndSub-FolderB
C:\>mklink /j D:\MainFolder-Copy\1stSub-FolderB\2ndSub-FolderA C:\MainFolder\1stSub-FolderB\2ndSub-FolderA
Junction created for D:\MainFolder-Copy\1stSub-FolderB\2ndSub-FolderA <<===>> C:\MainFolder\1stSub-FolderB\2ndSub-FolderA
C:\>mklink /j D:\MainFolder-Copy\1stSub-FolderB\2ndSub-FolderB C:\MainFolder\1stSub-FolderB\2ndSub-FolderB
Junction created for D:\MainFolder-Copy\1stSub-FolderB\2ndSub-FolderB <<===>> C:\MainFolder\1stSub-FolderB\2ndSub-FolderB
Run Code Online (Sandbox Code Playgroud)
结果:
C:\MainFolder>tree
Folder PATH listing for volume C System
C:.
????1stSub-FolderA
? ????2ndSub-FolderA
? ????2ndSub-FolderB
????1stSub-FolderB
????2ndSub-FolderA
????2ndSub-FolderB
D:\MainFolder-Copy>tree
Folder PATH listing for volume Dosya
D:.
????1stSub-FolderA
? ????2ndSub-FolderA
? ????2ndSub-FolderB
????1stSub-FolderB
????2ndSub-FolderA
????2ndSub-FolderB
Run Code Online (Sandbox Code Playgroud)
如何使用一些命令为所有二阶子文件夹制作它,而不是为每个文件夹手动编写代码?命令不应为 1st、3rd、4th、5th.. order 子文件夹创建目录连接。
尝试这个:
Get-ChildItem D:\MainFolder-Copy -Directory |
Foreach {Get-ChildItem (Join-Path C:\MainFolder $_.Name) -Directory} |
Foreach {cmd /c mklink /j ($_.FullName -replace 'C:\\MainFolder','D:\MainFolder-Copy') $_.FullName}
Run Code Online (Sandbox Code Playgroud)