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

何塞·安东尼

我是批处理脚本的新手,仅从上周开始学习,这是我在这里问的第一个问题。这是我的处境,请考虑以下示例,该示例列出了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 \ 1
  • \ Jose \ test1 \ 2
  • \ Jose \ test1 \ 1 \ 12
  • \ Jose \ test1 \ 1 \ 13
  • \ Jose \ test1 \ 1 \ 12 \ 131
  • \ Jose \ test1 \ 1 \ 12 \副本131
  • \ Jose \ test1 \ 1 \ 12 \ 131 \ 1311
  • \ Jose \ test1 \ 1 \ 12 \ 131 \ 1311 \ 13111
  • \ Jose \ test1 \ 1 \ 12 \ 131 \ 1311 \ 13112
  • \ Jose \ test1 \ 1 \ 12 \副本131 \ 1311
  • \ Jose \ test1 \ 1 \ 12 \ 131 \ 1311 \ 13111的副本
  • \ Jose \ test1 \ 1 \ 12 \ 131 \ 1311 \ 13112的副本
  • \ Jose \ test1 \ 1 \ 13 \ 132
  • \ Jose \ test1 \ 1 \ 13 \ 132 \ 1321
  • \ Jose \ test1 \ 1 \ 13 \ 132 \ 1321 \ 13211

我想从所有行中删除“ \ jose”,即,我想将“ \ test1”设置为起始路径。需要帮助的人。。在此先感谢...

远藤

在Windows下使用sed尝试一下

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 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章