Powershell 找不到驱动器。名为“C”的驱动器不存在

问题描述 投票:0回答:1

编写了一个PS脚本,该脚本读取.ini文件的某些参数,以将文件从folder_a复制到folder_b、c ..等等。我得到了可怕的“

找不到驱动器。名为“C”的驱动器不存在。”

我尝试过胡萝卜、报价,但没有成功。不确定是什么导致了失败。我很好奇为什么它在“C”驱动器之前放置一个空格,而 .ini 文件不包含此内容。

# Load the contents of the abc_derp.ini file
$iniContent = Get-Content "C:\cfg\abc_derp.ini" -Raw | ConvertFrom-StringData

# Get values from the abc_derp.ini file
$amount = [int]$iniContent["AMT"]
$partialNames = $iniContent["PTN"] -split ";"
$sourceDirectory = $iniContent["SRC"]
$targetDirectories = $iniContent["TRG"] -split ";"
$logFile = $iniContent["LOG"]

# Create log file with timestamp
$logFileName = "log_$(Get-Date -Format yyyy-MM-dd-HHmmss).txt"
$logFilePath = Join-Path $sourceDirectory $logFileName

foreach ($partialName in $partialNames) {
    $filesToCopy = Get-ChildItem -Path $sourceDirectory -Filter "*$partialName*" -File | Select-Object -First $amount

    foreach ($targetDirectory in $targetDirectories) {
        foreach ($fileToCopy in $filesToCopy) {
            $destinationPath = Join-Path $targetDirectory $fileToCopy.Name
            Copy-Item -Path $fileToCopy.FullName -Destination $destinationPath
            $logMessage = "Copied $($fileToCopy.FullName) to $destinationPath"
            $logMessage | Out-File -FilePath $logFilePath -Append
        }
    }
}

这是脚本正在读取的.ini文件内容

AMT=300
PTN=BURGERS_A; ALIENS_A
SRC=C:\\base\\test\\source
TRG=C:\\base\\test\\dest1; C:\\base\\test\\dest2
LOG=C:\\base\\log
powershell shell parsing scripting powershell-3.0
1个回答
0
投票

您可以使用trim()函数。

# Get values from the abc_derp.ini file
$amount = [int]$iniContent["AMT"]
$partialNames = $iniContent["PTN"].Split(";").Trim()
$sourceDirectory = $iniContent["SRC"].Trim()
$targetDirectories = $iniContent["TRG"].Split(";").Trim()
$logFile = $iniContent["LOG"].Trim() 
© www.soinside.com 2019 - 2024. All rights reserved.