Board logo

标题: [文件操作] 批处理如何把txt文本放入已有不在一个目录下的相同名称的文件内? [打印本页]

作者: cxq00    时间: 2024-8-11 14:47     标题: 批处理如何把txt文本放入已有不在一个目录下的相同名称的文件内?

批处理如何把txt文本放入已有相同名称的文件内?

例如:txt文本在 E:\文件   ,需要放在文件夹E:\文件\images下的有着相同名称的文件夹内
作者: aloha20200628    时间: 2024-8-11 17:20

本帖最后由 aloha20200628 于 2024-8-11 17:28 编辑

回复 1# cxq00

以下代码存为 test.bat 置于 ‘e:\文件’ 目录中,将任选的目标文件直接托给 test.bat 运行即可...
  1. @echo off &if "%~1" neq "" for /f "delims=" %%a in ('dir /b/ad "images\%~n1*" 2^>nul') do if /i "%~n1"=="%%a" move /y "%~1" "images\%%a\"
  2. pause&exit/b
复制代码

作者: 77七    时间: 2024-8-11 20:47

  1. @echo off
  2. rem 保存为ansi
  3. for %%a in ("e:\文件\*.txt") do (
  4. if exist "e:\文件\images\%%~na\" (
  5. copy "%%a" "e:\文件\images\%%~na\"
  6. )
  7. )
  8. pause
复制代码

作者: cxq00    时间: 2024-8-11 21:34

回复 3# 77七


    可以了,谢谢您的帮助
作者: cxq00    时间: 2024-8-11 21:35

回复 2# aloha20200628


   这个运行了没有效果,不知道啥原因
作者: aloha20200628    时间: 2024-8-11 23:06

本帖最后由 aloha20200628 于 2024-8-11 23:11 编辑

回复 5# cxq00

2楼代码是仅对某个拖入的文件操作
看来楼主的 ‘猜谜帖’ 是3楼押对了...原来是要把当前目录中所有与 'dir /b/ad \images\*' 同名的*.txt文件放到对应子目录中 如是再给一个版本如下
  1. @echo off &setlocal enabledelayedexpansion &for /d %%d in (images\*) do set "%%~nxd=1"
  2. for /f "delims=" %%F in ( 'dir /b/a-d "*.txt" ') do if "!%%~nF!"=="1" move /y "%%F" "images\%%~nF\"
  3. endlocal&pause&exit/b
复制代码





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