Windows 在路径中设置起始位置(批处理)

Windows 在路径中设置起始位置(批处理),windows,batch-file,path,Windows,Batch File,Path,我是批处理脚本的新手,从上周才开始学习,这是我在这里要问的第一个问题。这是我的情况, 考虑这个例子,它列出了D:/若泽/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 ) ENDLOC

我是批处理脚本的新手,从上周才开始学习,这是我在这里要问的第一个问题。这是我的情况, 考虑这个例子,它列出了D:/若泽/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
文本文件输出:

  • \何塞\test1\1
  • \何塞\test1\2
  • \何塞\test1\1\12
  • \何塞\test1\1\13
  • \何塞\test1\1\12\131
  • \Jose\test1\1\12\131的副本
  • \何塞\test1\1\12\131\1311
  • \何塞\test1\1\12\131\1311\13111
  • \何塞\test1\1\12\131\1311\13112
  • \何塞\test1\1\12\131\1311的副本
  • \何塞\test1\1\12\131\1311\13111的副本
  • \何塞\test1\1\12\131\1311\13112的副本
  • \何塞\test1\1\13\132
  • \何塞\test1\1\13\132\1321
  • \何塞\test1\1\13\132\1321\13211
我想从所有行中删除“\jose”,我想将“\test1”设置为起始路径。需要帮助的家伙们…提前感谢…

试试:


…纯批次溶液:

…以及更多批次:


这看起来不错,但我正在使用xp,我不允许安装任何东西,也不能要求我的客户这样做。有没有使用基本批处理的替代方法?谢谢……这很有效。但我必须将“%~a”更改为“%~G”,将“fname=!fname:\Jose=!”更改为“fname=!fname:D:\Jose=!@JoseAntony我制作了一个较短的版本,你可以试试这个。再测试一次,它在这里工作。你忘了星号了吗?@enduro。。现在这也行了..谢谢..但是第一个答案非常适合我的要求(我已经复制了)…你应该编辑并为其他人添加它..-)
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