Windows 在路径中设置起始位置(批处理)
我是批处理脚本的新手,从上周才开始学习,这是我在这里要问的第一个问题。这是我的情况, 考虑这个例子,它列出了D:/若泽/Test1下的所有目录,并将其附加到文本文件。 代码: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
@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
…纯批次溶液: …以及更多批次:
这看起来不错,但我正在使用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