2016-12-26 172 views
0

我正在創建一個批處理文件打開遠程計算機管理控制檯通過將用戶ID作爲輸入和第二列計算機名稱從文件data.csv。它在第一次嘗試時工作正常。當它回到:開始標籤。並要求其他輸入。它會給出錯誤。如果當前的工作文件夾更改文件系統無法找到文件./data.csv 我的代碼是批處理文件系統無法找到文件後循環

:start 
    set /p Input="Enter User-ID:" 

    for /f "usebackq tokens=1-4 delims=," %%a in (".\data.csv") do (
     if %input% ==%%a ("cmd /c Start /B /wait compmgmt.msc –a /computer=%%b") 

    ) 
    cls 
    GOTO start 
+0

你爲什麼使用'cmd/C'和'start'?你爲什麼要引用整個命令行? – aschipfl

回答

0

很好的做法,使用%〜DP0在批處理文件路徑(而不是像相對路徑。)這種方式將始終位於。

所以改爲%〜dp0data.csv

+0

該點也可以按意圖引用%CD%。但是在所示的代碼中都不應該改變。選擇固定(非相對)路徑是更好的選擇。 – LotPings

+1

Waoooooooooo完美謝謝喬。太棒了。 –

+0

親愛的還有一個問題。我必須讓它exe文件。所以當我改變它exe文件不起作用。但是當打開.bat時,它完美無缺。 –

0
:start 
set /p Input="Enter User-ID:" 
PUSHD  
for /f "usebackq tokens=1-4 delims=," %%a in (".\data.csv") do (
if %input% ==%%a ("cmd /c Start /B /wait compmgmt.msc –a /computer=%%b") 

) 
POPD 
cls 
GOTO start 

應該恢復神智,推的目錄,然後在下一個週期之前恢復它。