Board logo

标题: [文本处理] 【已解决】求助修改BAT脚本自动复制文件 [打印本页]

作者: 3537589    时间: 2023-12-23 15:50     标题: 【已解决】求助修改BAT脚本自动复制文件

本帖最后由 3537589 于 2023-12-24 17:06 编辑
  1. Dir *.* /b >list.txt
复制代码
这个bat 文本是自动复制文件名。

001.jpg
002.jpg
003.jpg
004.jpg
这四张图片执行这个bat 命令
格式如下
  1. 001.jpg
  2. 002.jpg
  3. 003.jpg
  4. 004.jpg
  5. list.txt
复制代码
能改成生成这样格式文件么。中间加个空行。一头一尾加固定东西
  1. [img]http://www.bathome.net/images/001.jpg[/img]
  2. [img]http://www.bathome.net/images/002.jpg[/img]
  3. [img]http://www.bathome.net/images/003.jpg[/img]
  4. [img]http://www.bathome.net/images/004jpg[/img]
  5. [img]http://www.bathome.net/images/list.txt[/img]
复制代码

作者: thp2008    时间: 2023-12-23 16:52

本帖最后由 thp2008 于 2023-12-23 16:53 编辑

保存为ANSI编码:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "output=url.txt"
  4. echo ^<html^> > %output%
  5. echo ^<body^> >> %output%
  6. for %%F in (*) do (
  7.     echo [img]http://www.bathome.net/images/%%~nxF[/img] >> %output%
  8.     echo. >> %output%
  9. )
  10. echo ^</body^> >> %output%
  11. echo ^</html^> >> %output%
  12. echo 批处理已完成,结果保存为%output%
复制代码

作者: 3537589    时间: 2023-12-23 17:39

回复 2# thp2008
谢谢。一头一尾 添加的东西好像有限制 < "  带这些字符好像不行。还是谢谢了
作者: 77七    时间: 2023-12-23 17:48

  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. set output=list.txt
  4. (for /f "delims=" %%i in ('dir /b /a-d') do (
  5. if "%%~nxi" neq "%output%" (
  6. if "%%~nxi" neq "%~nx0" (
  7. echo [img]http://www.bathome.net/images/%%~nxi[/img]
  8. echo=
  9. )
  10. )
  11. ))>"%output%"
  12. pause
复制代码

作者: Batcher    时间: 2023-12-23 21:56

回复 3# 3537589


    特殊字符是需要转义的,需要加什么就说,不要假设。
作者: 3537589    时间: 2023-12-24 13:22

回复 5# Batcher
老大说的是,以为随便替换就可以
   
这样格式的。
  1. <img class="aligncenter" src="http://www.bathome.net/images/001.jpg" alt="" />
  2. <img class="aligncenter" src="http://www.bathome.net/images/002.jpg" alt="" />
  3. <img class="aligncenter" src="http://www.bathome.net/images/003.jpg" alt="" />
  4. <img class="aligncenter" src="http://www.bathome.net/images/004.jpg" alt="" />
复制代码
< "  里面有这些字符。不行
作者: aloha20200628    时间: 2023-12-24 14:52

本帖最后由 aloha20200628 于 2023-12-24 15:10 编辑

回复 6# 3537589

以下代码用6楼提供的样本测试通过
  1. @echo off &setlocal enabledelayedexpansion
  2. set "s=<img class="aligncenter^" src=^"http://www.bathome.net/images/@^" alt=^"^" /^>"
  3. (for %%v in (001.jpg 002.jpg 003.jpg 004.jpg list.txt) do echo,!s:@=%%v!&echo,)>out.xml
复制代码
或者换以下版本亦可
  1. @echo off &setlocal enabledelayedexpansion
  2. set s=^<img class="aligncenter" src=^"http://www.bathome.net/images/@^" alt=^"^" /^>
  3. (for %%v in (001.jpg 002.jpg 003.jpg 004.jpg list.txt) do echo,!s:@=%%v!&echo,)>out.xml
复制代码

作者: 3537589    时间: 2023-12-24 15:17

本帖最后由 3537589 于 2023-12-24 15:21 编辑

回复 7# aloha20200628
  1. (for %%v in (001.jpg 002.jpg 003.jpg 004.jpg list.txt) do echo,!s:@=%%v!&echo,)>out.xml
复制代码
001.jpg 002.jpg 003.jpg 004.jpg 这个能不能 不要把格式固定死 设置成 *.*
作者: aloha20200628    时间: 2023-12-24 16:35

回复 8# 3537589

假设 list.txt 中是如下内容:
001.jpg
002.jpg
003.jpg
004.jpg
可用如下代码,再将掩码字符 @ 换成ANSI字符集中较不常用的字符 ◆ 会更稳妥吧。
  1. @echo off &setlocal enabledelayedexpansion
  2. set s=^<img class="aligncenter" src=^"http://www.bathome.net/images/◆^" alt=^"^" /^>
  3. (for /f "delims=" %%v in (list.txt) do echo,!s:◆=%%v!&echo,)>out.xml
复制代码

作者: 3537589    时间: 2023-12-24 16:38

本帖最后由 3537589 于 2023-12-24 17:08 编辑

谢谢全部楼上的。
通过楼上代码喂养gpt


修改了自己要的结果。
  1. @echo off & setlocal enabledelayedexpansion
  2. set "s=<img class="aligncenter" src="http://www.bathome.net/images/@^" alt=^"^" /^>"
  3. (for %%v in (*.*) do echo,!s:@=%%v!&echo,)>out.txt
复制代码

作者: 77七    时间: 2023-12-24 17:23

  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. set output=list.txt
  4. (for /f "delims=" %%i in ('dir /b /a-d') do (
  5. if "%%~nxi" neq "%output%" (
  6. if "%%~nxi" neq "%~nx0" (
  7. echo ^<img class="aligncenter" src="http://www.bathome.net/images/%%~nxi" alt="" /^>
  8. echo=
  9. )
  10. )
  11. ))>"%output%"
  12. pause
复制代码





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