无法从批处理文件运行python脚本

无法从批处理文件运行python脚本,python,batch-file,notepad++,Python,Batch File,Notepad++,您好,我希望从我编写的批处理文件中运行python脚本(我没有编写) 我有两个问题: 在命令提示符下运行命令可以正常工作,但从批处理文件来看,该命令失败,没有错误消息;python脚本创建输出文件,但在批处理文件中运行时不会创建输出文件 @echo off SET /P PrePRD=Enter the Pre Production file name: SET /P PostPRD=Enter the Post Production file name: Set /p IdColumn=

您好,我希望从我编写的批处理文件中运行python脚本(我没有编写)

我有两个问题:

  • 在命令提示符下运行命令可以正常工作,但从批处理文件来看,该命令失败,没有错误消息;python脚本创建输出文件,但在批处理文件中运行时不会创建输出文件

    @echo off
    SET /P PrePRD=Enter the Pre Production file name: 
    SET /P PostPRD=Enter the Post Production file name: 
    Set /p IdColumn= Enter the Name of the ID column (ID - Original Input):
    
    cmd /k "cd /d C:\CSVComparison"
    C:\CSVComparison\csv_diff.py -src "%PrePRD%" -dest "%PostPRD%" -keys "%IdColumn%"
    
  • 我希望打开python使用
    Notepad++
    创建的输出文件,但我不确定它是否可以这样工作:

    start C:\Program Files (x86)\Notepad++\notepad++.exe C:\CSVComparison\results_details.json
    notepad++.exe C:\CSVComparison\results_details.json
    

  • 谢谢,

    回答您的第一个问题-不幸的是Windows不知道(但?),因此您需要指定要使用python interpeter运行python脚本:

    cmd /k "cd /d C:\CSVComparison"
    C:\path\to\python.exe C:\CSVComparison\csv_diff.py -src "%PrePRD%" -dest "%PostPRD%" -keys "%IdColumn%"
    

    回答您的第一个问题-不幸的是Windows不知道,所以您需要指定要使用python interpeter运行python脚本:

    cmd /k "cd /d C:\CSVComparison"
    C:\path\to\python.exe C:\CSVComparison\csv_diff.py -src "%PrePRD%" -dest "%PostPRD%" -keys "%IdColumn%"
    
    1) 使用
    cmd/k
    启动另一个实例,但以下命令将在原始实例中执行(我猜,您希望在第二个实例中执行)。或者在原始实例中执行它(根本没有
    cmd/…
    ;您可能需要
    调用它)

    或在另一个窗口中启动它:

    start /d "C:\CSVComparison" "csv_diff" "C:\CSVComparison\csv_diff.py" -src "%PrePRD%" -dest "%PostPRD%" -keys "%IdColumn%"
    
    2) 如果文件夹或文件包含空格,则需要将整个内容用引号括起来。更好:习惯用引号括起文件夹/文件名:

    start "" "C:\Program Files (x86)\Notepad++\notepad++.exe" "C:\CSVComparison\results_details.json"
    
    start
    )将第一个带引号的字符串作为窗口标题,因此您需要给它一个假标题(
    “”

    1)您使用
    cmd/k
    启动另一个实例,但以下命令在原始实例中执行(我猜,您希望它在第二个实例中执行)。或者在原始实例中执行它(根本没有
    cmd/…
    ;您可能需要
    调用它)

    或在另一个窗口中启动它:

    start /d "C:\CSVComparison" "csv_diff" "C:\CSVComparison\csv_diff.py" -src "%PrePRD%" -dest "%PostPRD%" -keys "%IdColumn%"
    
    2) 如果文件夹或文件包含空格,则需要将整个内容用引号括起来。更好:习惯用引号括起文件夹/文件名:

    start "" "C:\Program Files (x86)\Notepad++\notepad++.exe" "C:\CSVComparison\results_details.json"
    
    start
    )将第一个带引号的字符串作为窗口标题,因此需要给它一个假标题(
    “”