Power Shell 脚本找不到C盘

Power Shell Script cant find C disk

所以我一直在尝试制作一个脚本,将用户 "Documents"、"Photos" 文件夹等中的所有文件复制到另一个驱动器上的单个文件夹中。 但是脚本一直在说:

Copy-Item : Cannot find drive. A drive with the name '‪c' does not exist.
At C:\Users\sebbe\Downloads\Untitled1.ps1:23 char:1
+ Copy-Item -Path "‪c:\Users$user\Desktop\*" -Destination D:\mapp1$us ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (‪c:String) [Copy-Item], DriveNotFoundExcept 
   ion
    + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.CopyItemCommand

我是 运行 通过 Power Shell ISE 作为管理员的脚本,我在两台不同的 PC 上尝试过该脚本,但都失败了。

为什么脚本找不到C:盘?

这是整个脚本:

$User = Read-Host "New Username"

Function makeDir {
    New-Item -Path D:\mapp1 -Name "$User" -ItemType Directory 
}
Function copyDesktop {
    Copy-Item -Path "C:\Users$User\Desktop" -Destination "D:\mapp1$User\Desktop" -Recurse
}

Function copyDocuments {
    Copy-Item -Path "‪C:\Users$User\Documents" -Destination "D:\mapp1$User\Documents" -Recurse
}

Function copyPictures {
    Copy-Item -Path ‪‪"C:\Users$User\Pictures" -Destination "D:\mapp1$User\Pictures" -Recurse
}

makeDir
copyDocuments
copyPictures
copyDesktop

您的问题很可能是 PowerShell 无法正确扩展字符串。为确保您有一个字符串,将您的路径封装在 "C:\users$User\Documents" 等引号中。那么您不想在路径末尾使用 \* 。只需使用 Copy-Item 的 built-in -Recurse 参数。如果您不使用递归参数,您可能需要 运行 多次复制。

$user = Read-Host "New Username"

Function makeDir {
    New-Item -Path D:\mapp1 -Name "$user" -ItemType Directory 
}

Function makeDesktop {
    New-Item -Path D:\mapp1$user\ -Name "$user Skrivbord" -ItemType Directory 
}

Function makeDocuments {
    New-Item -Path D:\mapp1$user\ -Name "$user Dokument" -ItemType Directory 
}

Function makePictures {
    New-Item -Path D:\mapp1$user\ -Name "$user Bilder" -ItemType Directory 
} 

Function kopieraDesktop {
    Copy-Item -Path "‪C:\Users$user\Desktop" -Destination "D:\mapp1$user\Desktop"
}

Function kopieraDocuments {
    Copy-Item -Path ‪"C:\Users$user\Documents" -Destination "D:\mapp1$user\Documents"
}

Function kopieraPictures {
    Copy-Item -Path ‪‪"C:\users$user\Pictures" -Destination "D:\mapp1$user\Pictures"
}

makeDir
makeDesktop
makeDocuments
makePictures
kopieraDesktop
kopieraDocuments
kopieraPictures

不知怎么的,我成功了。

代码现在是这样的:

$User = Read-Host "New Username"

Function makeDir {
    New-Item -Path D:\mapp1 -Name "$User" -ItemType Directory 
}
Function copyDesktop {
    Copy-Item -Path "C:\Users$User\Desktop" -Destination "D:\mapp1$User\Desktop" -Recurse
}

Function copyDocuments {
    Copy-Item -Path "C:\Users$User\Documents" -Destination "D:\mapp1$User\Documents" -Recurse
}

Function copyPictures {
    Copy-Item -Path "C:\Users$User\Pictures" -Destination "D:\mapp1$User\Pictures" -Recurse
}

makeDir
copyDocuments
copyPictures
copyDesktop

非常感谢 Shawn Esterman,当然还有其他所有人! :)