我惹恼了一个非常讨厌的问题。我有这个文件进行处理(.fil):
Babchuk\Bianca\13 Stratford\Sun City West\AZ\Professor
Babchuk\Deana\12 View\Thousand Oaks\CA\Housewife
Babchuk\Nicholas\13 Stratford\Sun City West\AZ\Professor
我需要为每个州创建一个单独的文件,state =第五个字段(两个" AZ"行的文件和单个" CA"行的文件)。最后,我需要有两个文件:AZ.txt和CA.txt。 每个文件都包含包含文件状态的每一行。
我想出了这批,但它不会起作用。它只创建了一个无名文件,其中包含很多行" ECHO已关闭。"。
for /f "delims=\ tokens=*" %%a IN (c:\windosbk\forf\sortedPx.txt) DO (
set line=%%a
for /f "delims=\ tokens=5" %%b IN ("%%a") DO (
set state=%%b
)
echo %line%>>%state%.txt
)
pause
只是为了确保清楚,结果应该是2个新文件:
AZ.txt:
Babchuk\Bianca\13 Stratford\Sun City West\AZ\Professor
Babchuk\Nicholas\13 Stratford\Sun City West\AZ\Professor
CA.txt:
Babchuk\Deana\12 View\Thousand Oaks\CA\Housewife**
答案 0 :(得分:2)
以下是您的示例文件的解决方案:
@echo off
for /f "usebackq delims=" %%a in ("c:\windosbk\forf\sortedPx.txt") do (
for /f "delims=" %%b in ("%%~pa\.") do >>"%%~nxb.txt" echo %%a
)
答案 1 :(得分:1)
这并没有尝试使用state
或line
变量,所以如果它们因为其他原因对您很重要,那么您必须将它们重新放入,但是这会在给出您的示例输入文件时生成所需的输出文件:
for /f "tokens=*" %%a IN (input.fil) DO (
echo %%a
for /f "delims=\ tokens=5" %%b IN ("%%a") DO (
echo %%a >>%%b.txt
)
)