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,当然还有其他所有人! :)
所以我一直在尝试制作一个脚本,将用户 "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,当然还有其他所有人! :)