使用 PowerShell 创建符号链接

问题描述 投票:0回答:0

我正在努力使用一些 PowerShell,我觉得我应该能够轻松地做到这一点,并希望得到一些帮助。

我有一系列存储日志和配置文件的路径 within

C:\temp
。我需要删除临时文件,然后在每次运行应用程序(使用批处理文件启动)时创建指向登录用户 OneDrive 的符号链接。

所以我需要它运行大约 10 个文件夹,例如

rmdir /Q /S c:\temp\app\cgi-bin
rmdir /Q /S c:\temp\app\contrib
rmdir /Q /S c:\temp\app\logs 

etc.

...然后运行等价于:

mklink /D c:\temp\app\cgi-bin c:\users\<logged on user>\One Drive - Company Name\app\cgi-bin
mklink /D c:\temp\app\contrib c:\users\<logged on user>\One Drive - Company Name\app\contrib
mklink /D c:\temp\app\logs c:\users\<logged on user>\One Drive - Company Name\app\logs

我在 PS 中尝试做的如下:

$username = $env:username

(get-item C:\temp\app\cgi-bin).Delete()
New-item -ItemType SymbolicLink -path c:\temp\app\cgi-bin -target 'C:\users\$username\OneDrive - Company Name\app\cgi-bin\'

...然后要让它在每个位置都运行相同的程序:

$username = $env:username

(get-item C:\temp\app\contrib).Delete()
New-item -ItemType SymbolicLink -path c:\temp\app\contrib -target 'C:\users\$username\OneDrive - Company Name\app\contrib\'

etc.

...但是完全迷路了。我觉得应该有一种简单的方法来遍历原始文件夹位置,然后将各个部分连接在一起。我又和

join-path
一起去了,但也不太顺利:

New-item -ItemType SymbolicLink -path C:\temp\app\cgi-bin -target (join-path 'C:\users' '"OneDrive - Company Name\app\cgi-bin\"')
powershell batch-file
© www.soinside.com 2019 - 2024. All rights reserved.