所以我制作了第一个批处理文件。该.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
文件和映射结构如下:
我在* .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)
每个文件夹中确实都有一个主文件(和子文件)。
答案 0 :(得分:0)
当您将控制权传递给第二个批处理文件propy
时,由于您没有使用call
关键字,控制权不会回到原始批处理文件。
请尝试:
@echo on
call "c:\Program Files\ArcGIS\Pro\bin\Python\scripts\propy.bat" "C:\Users\<restofthepath>\mainfile.py"
Pause
call
的意思是“当另一个文件完成后,返回以恢复执行该文件。”