最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

for命令的一些bug分析

 更新時間:2008年08月29日 19:01:48   作者:  
在使用批處理的過程中,會發(fā)現一些bug,下面就是一些會出現的情況
1、關于冒號:當某行內容以 : 打頭時,用 for /f "tokens=1* delims=:" %%i in ('findstr /n .* test.txt') do echo.%%j 會把 :
過濾掉;

  2、關于分號:findstr .* test.txt 可以把以分號打頭的行完整顯示出來,但是,用在for語句中就不能找到了,必須加上參數/n才可以
,似乎是for語句會把以分號打頭的行當作注釋內容忽略掉,好象不是findstr的錯;而不放在for語句中的 type、more和findstr都是可以的;

  解決問題1和問題2的方案有:

稍微復雜一點的:

@echo off
:: 不會忽略空行
for /f "delims=" %%i in ('findstr /n .* test.txt') do (
set "str=%%i"
call set "str=%%str:*:=%%"
call echo "%%str%%"
)
pause

最簡潔的:

@echo off
:: 此代碼會忽略空行
for /f "delims= eol=" %%i in (test.txt) do echo %%i
pause


  3、在for擴展中,%%~si 表示擴充的路徑只含短文件名,但是在以下的測試過程中,卻發(fā)現真正的情況并非如此:

  測試環(huán)境:
--------------------------------------------------------------------------------
D:\abcdefg hijk\abcd efgh.txt
D:\abcdefg hijk\te st.txt

  測試代碼:
--------------------------------------------------------------------------------
@echo off
for /f "delims=" %%i in ('dir /a /b *.txt') do echo %%~si
pause

  測試結果:
--------------------------------------------------------------------------------
D:\ABCDEF~1\ABCDEF~1.TXT
D:\ABCDEF~1\TEST~1.TXTtxt

  看到測試結果的最后一條記錄了嗎?居然擴展到了 TEST~1.TXTtxt !

  總結了一下出錯的情形,似乎是這樣的:當路徑中有超過一個的地方因為目錄名超過11個字符而擴充到短文件名的時候,文件名+后綴名
少于11個字符且?guī)Э崭竦奈募蜁l(fā)生擴展錯誤。

相關文章

最新評論

剑河县| 淮北市| 达拉特旗| 潮州市| 河曲县| 虞城县| 区。| 札达县| 安图县| 清水河县| 寿阳县| 黑河市| 板桥市| 祁阳县| 昌图县| 博客| 彭州市| 灌云县| 阿勒泰市| 正定县| 株洲县| 安义县| 旬邑县| 彰化市| 平邑县| 寿宁县| 尼勒克县| 江山市| 广宁县| 金乡县| 武川县| 华容县| 景泰县| 大埔县| 昆明市| 沁源县| 大田县| 潢川县| 浠水县| 辛集市| 逊克县|