在批处理脚本中从 STDIN 读取所有数据

Read all data from STDIN in a batch script

我正在尝试在 windows.I 上编写 SVN post-lock 脚本想使用批处理脚本调用 python 脚本并传递 REPO、USER 和路径锁定文件作为其参数。

.tmpl 文件中说 REPO 和 USER 都是预定义的参数,锁定的路径是通过 STDIN 传递的,所以我在我的 .bat 文件中尝试了这个:

@echo off
set REPOS=%1  
set USER=%2   
set /p files=

C:\Python27\python.exe C:\test.py %REPOS% %USER% %files%

如果我锁定单个文件,它工作正常。但是如果我用一个 svn lock 命令锁定多个文件,我只能用 'set /p files=' 获取第一个路径。

如何使用批处理脚本获取完整的锁定路径列表?感谢您的帮助!

Python进程将继承其父进程的stdin (shell运行批处理脚本) 因此,只需将读取它的任务推迟到您的 Python 程序中 — 它会在哪里 much easier to do.