2013-09-23 58 views
0

我有一个小的Powershell脚本,用于帮助重命名文件的文件夹,基于其他文件夹中的文件名。从读主机目录中修剪引号存储为变量

我有两条读取主机线路,它们捕获用户的输入并将输入作为源文件夹和目标文件夹存储为字符串。这让我的生活更轻松,因为我可以拖放而不是完整地键入路径。

的问题是,PowerShell会引发错误,称它无法找到驱动器“X: 这似乎是由路径周围的引号引起的,如拖放工作正常后,除去他们

这里是它是如何拍摄的?

$source = Read-Host "Source folder" 
$destination = Read-Host "Destination folder" 
[array]$a = Get-ChildItem $source 
[array]$b = Get-ChildItem $destination 

什么是运行Get-ChildItem命令之前,这些字符串删除引号,最简单的方法我都试过之类的东西$ source.replace,$ _。修剪和$ source -replace('“',”“)

似乎无法得到此工作。

+0

这将是有益的,看看你尝试从报价中删除无效的字符串。 – vonPryz

回答

2

使用单引号,像这样:

PS C:\> $foo = 'x:\"some weird\path"' 
PS C:\> $foo 
x:\"some weird\path" 
PS C:\> $foo.Replace('"', '') 
x:\some weird\path 
PS C:\> $foo -replace '"', '' 
x:\some weird\path 
+0

谢谢,不知道出了什么问题,但我再次尝试了$ foo.replace方法(经过多次失败尝试),并且完美运行。 – Eds