gpt4 book ai didi

powershell - 变量中的空格 - Powershell

转载 作者:行者123 更新时间:2023-12-03 16:34:25 24 4
gpt4 key购买 nike

我编写了一个脚本,它获取给定(源)目录的子目录,然后检查另一个(目标)目录中是否存在匹配的子目录。如果它存在于目标中,则它将子目录的内容复制到目标中。这是我到目前为止所拥有的:

$src = read-host "Enter Source Dir"
$dst = read-host "Enter Destination Dir"
$log = read-host "Enter Log File Name"
foreach ($folder in Get-ChildItem -Path $src)
{
if ( -Not (Test-Path "$dst\$folder")) {}
else {start-process robocopy.exe -ArgumentList "$src\$folder $dst\$folder /r:3 /w:5 /e /COPYALL /LOG+:D:\Temp\DataMigration\$log.log /zb /np /nc"}
}

除非变量 $src 或 $dst 中有空格,否则整个过程运行良好。我还想在 robocopy 的参数列表中添加一个/XD Application Data 参数,但是名称 application data 中的空格也会导致错误。

谁能弄清楚我如何在需要的地方允许空格而不是脚本中的中断?

谢谢!

B

最佳答案

看起来你应该用双引号包裹源路径和目标路径,一旦你需要在另一个路径中使用双引号,你应该转义它们(内部双引号)。有几种方法可以做到这一点。其中之一是使用反引号 (`):

start-process robocopy.exe -ArgumentList "`"$src\$folder`" `"$dst\$folder`" /r:3 /w:5 /e /COPYALL /LOG+:D:\Temp\DataMigration\$log.log /zb /np /nc"

关于powershell - 变量中的空格 - Powershell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24964245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com