我从bat文件或Python文件调用外部程序(fxTsUtf8.exe)。我浏览了数百个sos文件。在某些情况下,exe文件可能会因读取sos文件中的错误而失败。要继续执行exe文件,需要按下回车键。我怎么强迫"进入"在这种情况下输入?
我正在运行Windows 7和Python 3.5。 我尝试了两种方法。
1)仅使用bat文件 tegnsett2utf8.bat ,调用(还尝试启动) C: \ Fysak \ fxTsUtf8.exe 直接:
@echo off
REM For all subfolders
for /D /r %%s in ("*") do (
echo Subfolder %%~nxs
REM For all sosifiles
for %%f in (%%s\*.sos) do (
echo File %%f
call C:\Fysak\fxTsUtf8.exe %%f
)
)
2)从tegnsett2utf8.bat调用Python文件 2utf8.py 来运行fxTsUtf8.exe:
@echo off
REM For all subfolders
for /D /r %%s in ("*") do (
echo Subfolder %%~nxs
REM For all sosifiles
for %%f in (%%s\*.sos) do (
echo File %%f
python 2utf8.py %%f
)
)
其中 2utf8.py 看起来像这样
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys # for å kunne lese variable
import subprocess # for å starte et annet program
fn = sys.argv[1]
print('Python - filnavn er: '+fn)
print('----------------------------------------')
# Run fxTsUtf8 to convert to UTF-8 encoding
try:
subprocess.call(['C:\\Fysak\\fxTsUtf8.exe', fn])
except RunTimeError:
pass
在两种情况下,屏幕上的输出(在cmd窗口中):
> C:\adhoc\SOSI_til_UTF8\Org\detalj\aas\aas21.sos Python - filnavn er:
> C:\adhoc\SOSI_til_UTF8\Org\detalj\aas\aas21.sos
> ----------------------------------------
>
> fxTsUtf8 v. H1.1: Konverterer til UTF-8 tegnsett ...ORIGO-N├? mangler
> i filhodet. (Feil tegnsett?) Trykk [Enter] for Õ avbryte programmet:
但我无法弄清楚如何让bat文件或py文件继续下一个sos文件,而不会让我进入。
答案 0 :(得分:2)
你可以尝试
domain = [('user_id','=',user.id)]
这应该将CRLF传递到echo; | call C:\Fysak\fxTsUtf8.exe %%f
的输入缓冲区。