为一个超级愚蠢的问题道歉。
我正在尝试将 cpio 与 powershell 一起使用,并且重定向很痛苦。我已经阅读了几个stackoverflow答案:
https://superuser.com/questions/654574/pipeline-input-to-executable-with-powershell
在 Windows Powershell 中重定向标准输入\输出
并且不能让它工作,但问题似乎在于cpio的基本调用。
为简单起见:
我想创建一个包含文件名列表的文件。
我希望 CPIO 使用这个列表而不是使用标准输入。
我希望 CPIO 在不使用标准输出的情况下创建我命名的存档。
根据 gnu 文档,这应该是可行的。https://www.gnu.org/software/cpio/manual/html_node/Copy_002dout-mode.html#Copy_002dout-mode
-F [[user@]host:]archive-file
-O [[user@]host:]archive-file
--file=[[user@]host:]archive-file
Use the supplied archive-file instead of standard input. Optional user and host specify the user and host names in case of a remote archive.
然而,
$ldclist = get-childitem * -include *out.*
$ldclist.name|%{ "$_" }| out-file -encoding ascii cpiolist
.\cpio.exe -o -O cpiolist >testarc
根本行不通。它实际上用一个空白文件(或者,取决于“TRAILER !!!”)覆盖了 cpiolist。如果我尝试从 CMD 调用它,它似乎正在等待更多输入(如果我按 Enter,它会显示“:无效参数”)
非常感谢任何帮助。