Командная строка выглядит так:
cd C:\Program Files\Microsoft SQL Server\150\COM
snapshot.exe -Publisher [publisher] -PublisherDB [TEST] -Distributor [dist] -Publication [merge] -ReplicationType 2 -DistributorSecurityMode 1
Всего две команды
до сих пор мне повезло с:
subprocess.run(["C:\\Program Files\\Microsoft SQL Server\\150\\COM\\snapshot.exe","-Publisher [publisher] -PublisherDB [TEST] -Distributor [dist] -Publication [merge] -ReplicationType 2 -DistributorSecurityMode 1"])
Это запускает snapshot.exe, но говорит, что -Publisher [publisher] -PublisherDB [TEST] -Distributor [dist] -Publication [merge] -ReplicationType 2 -DistributorSecurityMode 1"]
не является допустимым параметром.
Каждая отдельная строка также должна быть отдельной строкой в вызове run
.
cd
может быть не нужен (большинству разумных инструментов все равно, в каком каталоге они работают), но я также добавлю параметр cwd
, чтобы показать, как все это можно сделать за один вызов.
subprocess.run(
["C:\\Program Files\\Microsoft SQL Server\\150\\COM\\snapshot.exe"
"-Publisher", "[publisher]", "-PublisherDB", "[TEST]",
"-Distributor", "[dist]", "-Publication", "[merge]",
"-ReplicationType", "2", "-DistributorSecurityMode", "1"],
# probably drop this
cwd = "C:\\Program Files\\Microsoft SQL Server\\150\\COM",
# probably add this
check=True)
Я ожидаю, что каждый аргумент snapshot.exe должен быть отдельной записью в массиве, а именно
subprocess.run(["C:\\Program Files\\Microsoft SQL Server\\150\\COM\\snapshot.exe","-Publisher","[publisher]", "-PublisherDB", "[TEST]", "-Distributor", "[dist]", "-Publication", "[merge]", "-ReplicationType", "2", "-DistributorSecurityMode", "1"])