FOR變量擴張有治療修飾符作爲文件規格的值並將其分解成組件
- %%〜dR =驅動器:
- %%〜PR = \路徑\
- %%〜NR = baseName的
- %%〜xR的=。擴展名
這些改性劑也標準化值成規範(標準)的形式。
Windows不允許文件或文件夾名稱以空格或點結束,因此修改器將修剪值中的尾部點和空格。你可以使用這個事實來修剪尾隨的空格!
FOR /F "delims=" %%R IN (C:\Test01.txt) DO IF Ready == %%~nxR COPY /y C:\Test01.txt
如果值不包含:
\
或/
這隻會正常工作。另外請記住,它也會修剪尾隨點。所以如果你使用%%~nxR
,像c:\my path\Ready.
這樣的字符串也會變成Ready
。
有一個更簡單,更可靠的解決方案,可以在你的情況下工作。所有的行都由一個單詞組成(加上尾隨空格)。如果你可以依賴這個事實,那麼你可以簡單地刪除你的DELIMS選項,並讓你爲你修剪空間(默認的DELIMS是空格和製表符)。
FOR /F %%R in (C:\Test01.txt) DO IF Ready == %%R COPY /y C:\Test01.txt
如果你擔心一些字可以遵循READY,在這種情況下,你不想複製,那麼你可以使用
FOR /F %%R* in (C:\Test01.txt) DO IF Ready == %%R IF "%%S" == "" COPY /y C:\Test01.txt
添加一些代碼,你目前在你的批處理文件。 – Tomalak 2012-03-22 16:48:16
FOR/F「delims =」%% R IN(C:\ Test01.txt)DO IF Ready == %% R COPY/y C:\ Test01.txt「 – 2012-03-22 16:58:27
什麼是'Ready'?另外,請從'C添加幾行:\ Test01.txt' – Tomalak 2012-03-22 17:06:46