批处理文件中调用PowerShell处理含连字符文件名时的报错问题求助
批处理文件中调用PowerShell处理含连字符文件名时的报错问题求助
我最近写了个批处理文件,用来批量标准化同一文件夹里的多个音频文件。另外我还会创建和音频文件同名的TXT文件,需要从这些TXT里删掉某些行,之后用它们来清除音频文件的自定义标签。
有个情况需要说明:变量!Filename!.txt对应的文件名会有各种不同的值,比如ACDC - Jailbreak.txt或者ACDC - TNT.txt这类,所有文件名里都会用-分隔歌手名和歌曲名。
我尝试在批处理里用下面这条命令调用PowerShell执行处理(已经在gci命令的首尾加了双引号):
"%systemroot%\system32\windowspowershell\v1.0\powershell.exe" -Command "gci !Filename!.txt | foreach { (cat $_.fullname | ? {$_ -match 'METADATA|title|encoder' }) | set-content $_.fullname}"
但运行后出现了报错,错误信息如下:
Get-ChildItem : Cannot find a positional parameter that accepts the argument '-'.
In line:1 character:1
- gci ACDC - Jailbreak.txt | foreach { (cat $_.fullname | ? ...
备注:内容来源于stack exchange,提问作者Clamarc
相关产品推荐
相关产品推荐

