C 執行批處理檔案,重定向時發生的一場烏龍

2022-11-27 03:27:41 字數 815 閱讀 9266

為了做一個自動備份檔案的功能,本來採用直接拷貝檔案到新的路徑,但程式已aspnet身份訪問遠端機會沒有許可權,按照網上的解決辦法(在config中指定特殊身份)也沒有解決,於是採用批處理方法來解決。

建立批處理檔案:

public

static

void createcopybat(string src, string

dest)

(if not exist (

md )

xcopy /s /e /y

echo creatcopybat: copyfile to sussecc! time: >> backupfilelog.txt

) else (

echo creatcopybat: is not exit! time: >> backupfilelog.txt)"

, src, dest, datetime.now.tostring()));

sw.close();

fs.close();

}

執行批處理檔案:

name是批處理檔案的路徑

public

void execpro(string

name)

}

然而重定向到txt的檔案並沒有出現,可是直接執行bat檔案就正常。

折騰了半天才發現是場烏龍,程序執行時的預設路徑並不是bat檔案所在路徑,所以txt檔案需要寫完整路徑。。。

之後又遇到了2個小問題:1.路徑中有空格:給路徑加“”解決;2.路徑中有漢字,用pause加回顯發現漢字變成了亂碼:未解決