我是批处理脚本的新手,从上周开始学习这个,这是我在这里问的第一个问题。我的情况是, 考虑这个例子,它列出了D:/ Jose / test1下的所有目录,并将其附加到文本文件中。
代码:
@echo off
SETLOCAL EnableDelayedExpansion
cd /d D:\Jose\test1
FOR /F "delims=" %%G in ('dir /ad /on /s /b') DO (
ECHO %%~pG%%~nG>>D:\test2\list.txt
)
ENDLOCAL
pause
文本文件输出:
我想从所有行中删除'\ jose',即我想将'\ test1'设置为起始路径。需要帮助的人......提前谢谢...
答案 0 :(得分:1)
使用sed for Windows尝试:
for /d /r %%G in (*) do sed -r "s/^\\[^\]+(\\.*)/\1/" "%%~pnxG">>D:\test2\list.txt
.. 纯批次的解决方案:
@echo off &setlocal
(FOR /f "tokens=2* delims=\" %%a IN ('dir /ad /on /s /b') DO ECHO(\%%~b)>D:\test2\list.txt
TYPE D:\test2\list.txt
PAUSE
..以及更多批次:
@echo off &setlocal
(FOR /d /r %%G in (*) DO (
SET "fname=%%~G"
SETLOCAL ENABLEDELAYEDEXPANSION
SET "fname=!fname:*\Jose=!"
ECHO(!fname!
ENDLOCAL
))>D:\test2\list.txt
TYPE D:\test2\list.txt
PAUSE