Board logo

标题: [文件操作] [已解决]批处理怎么把文件夹名+文件名追加在文件内容末尾? [打印本页]

作者: 小小问号    时间: 2022-11-2 21:18     标题: [已解决]批处理怎么把文件夹名+文件名追加在文件内容末尾?

本帖最后由 小小问号 于 2022-11-3 21:59 编辑

需要从多个文件夹里面查找多个文件,拷贝到指定文件夹A,文件名存在test.txt,已经实现查找和复制,现在想要把文件原来路径的上一级的文件夹名加文件名追加在指定文件夹A的文件内容的末尾,求大神帮忙
现在已经获取到文件夹名和文件名,存在filename.txt   一行存一条记录如:文件夹.文件名
原来文件路径:            想要追加的内容:     追加在指定文件夹A的文件内容末尾
..\文件夹a\文件1             文件夹a.文件1              ..文件夹A\文件1
..\文件夹a\文件2             文件夹a.文件2              ..文件夹A\文件2
..\文件夹a\文件3             文件夹a.文件3              ..文件夹A\文件3
..\文件夹b\文件4             文件夹b.文件4              ..文件夹A\文件4

尝试了2种查找和复制的方法,代码如下:
  1. #方法一
  2. @echo@echo off
  3. setlocal enabledelayedexpansion
  4. set outputDir=..\文件夹A
  5. for /f "delims=" %%a in (test.txt) do set _"%%a"=true
  6. for /f "delims=" %%i in ('dir /s /b /a-d') do if defined _"%%~nxi" copy "%%i" "%outputDir%"
  7. #方法二
  8. @echo off &set "outputDir=..\文件夹A"
  9. for /f "delims=" %%F in ('dir/s/b/a-d^|findstr /g:"test.txt" ') do (copy /y "%%~F" "%outputDir%">nul)
复制代码

作者: 77七    时间: 2022-11-3 01:25

本帖最后由 77七 于 2022-11-3 01:32 编辑

"现在想要把文件原来路径的上一级的文件夹名加文件名追加在指定文件夹A的文件内容的末尾。"
简言之,把名加在文件内容末尾,这如何理解...
你直接 列举操作前,和操作后的效果,这样比较好理解...
作者: Batcher    时间: 2022-11-3 09:13

回复 1# 小小问号
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. set "outputDir=..\文件夹A"
  5. for /f "delims=" %%a in (test.txt) do set _"%%a"=true
  6. for /f "delims=" %%i in ('dir /b /s /a-d') do (
  7.     if defined _"%%~nxi" (
  8.         copy "%%i" "%outputDir%"
  9.         for %%j in ("%%i\..") do (
  10.             >>"%outputDir%\%%~nxi" echo %%~nxj.%%~nxi
  11.         )
  12.     )
  13. )
复制代码

作者: 小小问号    时间: 2022-11-3 10:26

回复 3# Batcher


    非常感谢大佬,已经实现我的需求




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2