2017-09-21 43 views
0

我想通過給它一個參數來調用一個批處理文件的程序。主要的錯誤是我無法通過/發送字符的值/字符串到批處理文件。當我運行它顯示字符的名稱(或任何它被稱爲),但我希望它顯示存儲在該字符串中的字符串。 C程序的源代碼是: -如何將字符的值傳遞給c中的另一個.bat文件?

#include <stdio.h> 
#include <stdlib.h> 

void main(char a) 
{ 
    a="hello sir"; 
    system("batch.bat a"); 
} 

和用於批處理文件中的代碼是: -

@echo off 
SET x= 
SET x=%x%%1 
ECHO %x% 
PAUSE 

保存該文件作爲batch.bat和運行c程序。只是顯示 輸出的「一」,而不是一個(「你好先生」) ,我希望它顯示「你好先生」 認罪嘗試,並回答儘可能快的值。:-)

+0

沒有關於'main'是遠程標準兼容(除了名稱)。 – WhozCraig

+0

也許像'system(「batch.bat」+ a);'但是我不確定''C/C++']中的''system()']函數(https://www.ibm.com/support /knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/systm.htm) – JosefZ

回答

0

嘗試類似那:

#include <stdio.h> 
#include <stdlib.h> 

void main(char **arg) 
{ 
    char cmd[20]="batch.bat "; 
    strncat(cmd,argv[1],sizeof(cmd)-strlen(cmd)-1); 
    system(cmd); 
} 
+0

不理解syncat –

相關問題