Windows批处理文件无法从使用的python文件中找到子文件文件

时间:2019-01-21 13:50:33

标签: batch-file

所以我制作了第一个批处理文件。该.bat文件的目标是启动多个.py文件,这些文件创建地理数据库+要素类(具有域)。 .py使用第二/子.py文件和.csv文件来获取他的输入。

我失败了,因为.bat找不到此.csv。我无法弄清我所缺少的,将不胜感激! (感谢进阶)

.bat的当前代码:

@echo on
"c:\Program Files\ArcGIS\Pro\bin\Python\scripts\propy.bat" "C:\Users\<restofthepath>\mainfile.py"
Pause

文件和映射结构如下:

The file & map structure are the following:

其他内容@abenky他的建议:

我在* .bat文件中添加了“调用”,尽管脚本中的暂停现在可以正常工作,但仍然出现以下错误:

回溯(最近通话最近):

File "C:\Users\<restofthepath>\mainfile.py", line 52, in <module> with open(<theCSVfile>) as infile: FileNotFoundError: [Errno 2] No such file or directory: <nameofthecsvfile>.csv'

脚本的第52行包含以下行:

with open(<theCSVfile>) as infile:
    mw_fields  = csv.DictReader(infile, delimiter = ';')
Do I need to add this 'csv.Dictreader' also to my .bat file? *(maybe I misunderstood the function of the .batfile) 

每个文件夹中确实都有一个主文件(和子文件)。

1 个答案:

答案 0 :(得分:0)

当您将控制权传递给第二个批处理文件propy时,由于您没有使用call关键字,控制权不会回到原始批处理文件。

请尝试:

@echo on
call "c:\Program Files\ArcGIS\Pro\bin\Python\scripts\propy.bat" "C:\Users\<restofthepath>\mainfile.py"
Pause

call的意思是“当另一个文件完成后,返回以恢复执行该文件。”