powershell - 在 PowerShell 中多次重复部分命令
问题描述
我有一个保存在变量中的命令$command
,像这样
$command = path\to\.exe
The$command
有一个参数-f
表示文件的路径。此参数可以在同一行中重复多次以对多个文件执行命令,而无需在每次对每个文件执行命令时重新加载必要的模型。
示例:
如果我有 3 个文件我需要运行命令,那么我可以像这样执行它:
& $command -f 'file1' -f 'file2' -f 'file3' -other_params
如果我有 100 个文件,我想知道是否有任何方法可以在 PowerShell 中执行此操作,因为我显然无法尝试手动传递 100 个参数。
解决方案
PowerShell v4+解决方案,使用数组.ForEach()
方法:
# Open-ended array of input file names.
$files = 'file1', 'file2', 'file3'
& $command $files.ForEach({ '-f', $_ }) -other_params
在PowerShell v3-中,通过ForEach-Object
cmdlet 使用以下命令(效率稍低):
# Open-ended array of input file names.
$files = 'file1', 'file2', 'file3'
& $command ($files | ForEach-Object { '-f', $_ }) -other_params
两种解决方案:
构造一个与样本输入相同的平面字符串数组
'-f', 'file1', '-f', 'file2', '-f', 'file3'
依赖于PowerShell在调用外部程序(例如文件)时将数组元素作为单独参数传递的事实。
*.exe
推荐阅读
- angular - 错误错误:未捕获(承诺):cordova_not_available
- javascript - 替换过滤数组上的元素
- php - 使服务器可以理解 php 的循环,而不仅仅是回显代码
- windows - 如何在 Windows 10 上弹出 USB 驱动器(IOCTL_STORAGE_EJECT_MEDIA 已经不够用了)
- bash - 从文件时间戳创建目录,然后在 bash 中将文件移动到该目录
- django - 在哪里放置/如何覆盖 TokenAuthentication 迁移
- python - 如何从 CSV 文件的行中获取特定变量?
- python-3.x - 自动生成谷歌搜索查询
- html - 垂直滚动条是具有绝对位置的隐藏元素
- python - 无法使用模板标签