Powershell脚本将多个未知文件移动到正确的位置

时间:2013-12-23 06:38:50

标签: powershell

我正在尝试创建一个脚本,以便在我们在工作中执行手动数据传输时使用,当用户在随机位置拥有大量随机数据时,这可能会很繁琐。我想将这些项目从旧驱动器上的旧位置移动到我们的网络位置,然后将其拉回。我下面的内容是我想要做的测试版,我的问题是我无法弄清楚为什么我无法找到当前登录的用户并排除某些帐户。

$DOCDIR = [Environment]::GetFolderPath("MyDocuments")
$TARGETDIR = 'C:\TextFiles'
if(!(Test-Path -Path $TARGETDIR )){
    New-Item -ItemType directory -Path $TARGETDIR
}

$Include=@("*.*")
$Path=@("C:\Users\%USERNAME%\Documents","C:\Users\%USERNAME%\Pictures")

Get-ChildItem -Path $Path -Include $Include -Recurse | Move-Item -Destination C:\TextFiles

请注意,您将添加更多内容,但我不确定如何获取当前用户并将其排除在单位上的管理员帐户。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用名为USERDOMAINUSERNAME的环境变量来确定当前登录的用户。

if ($env:UserName -eq 'Trevor.Sullivan') {
    # Do something
}

为了更进一步,您可以构建要排除的用户帐户数组,然后检查该数组中是否包含当前登录的用户帐户。这是一个例子:

# Build the list of excluded users
$ExcludedUserList = @(
      'User1'
    , 'User2'
    , 'User3'
    , 'User4'
    );

# Check if user is contained in exclusion list
if ('User5' -notin $ExcludedUserList) {
    # Do something here
}