如何在PowerShell循环中为变量添加.bin后缀传递给命令
解决PowerShell变量拼接.bin后缀的问题
你的核心问题是文本文件里的每行末尾带有逗号和换行符,直接使用$line变量时,这些无效字符会被一起带入,导致生成的文件名变成类似abc123124324,.bin的错误格式,软件无法识别。
修正步骤
- 清理变量中的无效字符:对读取到的每行内容,用
Trim()方法去掉末尾的逗号、换行符(\r、\n)和多余空白。 - 跳过空行:避免处理文件末尾的空行导致错误。
修正后的代码
foreach ($line in Get-Content $filePath ) { # 清理每行的逗号、换行符和空白字符 $serialNumber = $line.Trim(',', "`r", "`n", ' ') # 跳过空行 if ([string]::IsNullOrEmpty($serialNumber)) { continue } Write-Host "Generating info for $serialNumber" # 用清理后的变量拼接.bin后缀 & C:\Users\Administrator\Desktop\software.exe -K -o sup -f "${serialNumber}.bin" -n $serialNumber }
补充说明
之前${line}_log.zip能运行,大概率是软件对下划线后的后缀兼容性更强,自动忽略了前面的逗号;但.bin格式要求更严格,必须确保文件名完全干净。
内容的提问来源于stack exchange,提问作者Raven
相关产品推荐
相关产品推荐

