我想运行一个powershell命令批处理。我的powershell命令:
gc 'C:\Users\Test\Test-01\source.csv' | %{
$cols = $_.split(";")
1..$cols[-2]| %{
"$($cols[0..9] -join ';');$($cols[(9+$_)] -join ';');$($cols[(24+$_)] -join ';');;;;;;;;;;;;;;;$($cols[-2]);"
}
} | sc "C:\Users\Test\Test-01\target.csv"
我的批处理命令:
powershell -Executionpolicy ByPass gc 'C:\Users\Test\Test-01\source.csv' | %{
$cols = $_.split(";")
1..$cols[-2]| %{
"$($cols[0..9] -join ';');$($cols[(9+$_)] -join ';');$($cols[(24+$_)] -join ';');;;;;;;;;;;;;;;$($cols[-2]);"
}
} | sc "C:\Users\Test\Test-01\target.csv"
它不工作。但是为什么?有人能告诉我为什么吗?
1条答案
按热度按时间eyh26e7m1#
要将PowerShell代码嵌入到.BATch文件中,您只需注意一些细节:
-ExecutionPolicy
和-Command
的东西。只需在powershell
命令后编写纯powershell代码。^
;
\"like this\"
* 或 * 通过撇号更改它们:'like this'
这些修改是必需的,因为批处理文件的特殊字符:
%%
| > < &
带插入符号,如下所示:^| ^> ^< ^&
在你的例子中,这是最终的工作代码:
您也可以查看this question。