我想設置一個變量「directusepermission」作爲txt文件的第一行。cmd - 獲取txt內容的第一行
組/ P directusepermission = <%〜DP0 \ directuse.txt-一線
因此,我希望僅第一行。我該怎麼做?
我想設置一個變量「directusepermission」作爲txt文件的第一行。cmd - 獲取txt內容的第一行
組/ P directusepermission = <%〜DP0 \ directuse.txt-一線
因此,我希望僅第一行。我該怎麼做?
你有什麼應該就夠了。
set /p "var="<file
或
<file set /p "var="
將讀取file
第一行到可變var
。
在您的代碼中,問題可能是當前批處理文件的路徑。如果它包含空格,則必須引用文件名。
set /p "directusepermission=" < "%~dp0\directuse.txt"
而且,讀變量時,這樣你就需要檢查
您也可以使用for /f
命令遍歷文件內容。在這種情況下,不存在的文件「問題」仍然存在,但空行會被忽略,如果它們爲空或僅包含空格或製表符。
但是,爲了僅獲得第一行,您將需要一些代碼來確定只有第一行將被賦值給變量。
這遍歷所有的文件內容,但只分配第一行到變量。對於單行或小文件,這是最簡單的。 tokens=*
要求for
命令檢索所有行並已包含useback
參數以避免引用的文件名被視爲要處理的字符串。
set "var="
for /f "tokens=* usebackq" %%f in ("file") do if not defined var set "var=%%f"
這僅檢索文件的第一行,但需要一個aditional的標籤從哪裏跳出來擺脫for命令
for /f "tokens=* usebackq" %%f in ("file") do set "var=%%f" & goto endLoop
:endLoop
如果你知道哪些內容是要行檢索,文件可以被過濾,只獲得所需的行。這將返回只有數行從開始到該行的結束,最後一行(請記住,它遍歷返回線以上)將asigned給變量
for /f "tokens=*" %%f in ('findstr /r "^[0-9][0-9]*$" <"file"') do set "var=%%f"
for /f "delims=" %%a in (%~dp0\directuse.txt) do set directusepermission=%%a&goto done
:done
應該就足夠了。
見http://stackoverflow.com/questions/1295068/windows-equiv-of-the-head-command的一些想法。在'nix中,一個人會使用'head'命令...該鏈接討論cmd替代品 – Floris
重新閱讀該問題。我希望得到第一行**變量**。 – user3186610
我認爲獲得第一條線是「讓它變成一個變量」的第一步。你有沒有看到http://stackoverflow.com/a/7827243/1967396? – Floris