[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理循环获取后替换问题

获取当前目录下的xlsx文件名后替换,将包含A订单的替换为空,.xlsx(包含.)替换为,(半角英文逗号),再输出到aa文本文档
从空行下面的替换开始出问题了
@echo off&setlocal enabledelayedexpansion
cd.>%cd%\aa.txt
echo= >>aa.txt
echo= >>aa.txt
for /r %cd% %%i in (*.xlsx) do (
echo %%~nxi
set "abc=%%~nxi"

set "abc=!abc: =A订单_"
set "abc=!abc: =B订单_"
set "abc=!abc:,=.xlsx"
echo !abc!>>aa.txt
)

本帖最后由 qixiaobin0715 于 2022-10-21 11:30 编辑

变量后面的叹号跑哪了?
替换是不是反了!
前面代码应当也有问题。
请举例说明你到底要实现什么目的。

TOP

回复 1# moling


请给一个真实的例子说明一下你的需求吧,比如操作之前是怎样的,操作之后变成啥样?
如果需要上传文件,可以用阿里云盘或百度网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# qixiaobin0715
例:
文件夹中包含
A订单123456789.xlsx
A订单123456788.xlsx
A订单123456787.xlsx
A订单123456786.xlsx
A订单123456785.xlsx
B订单223456789.xlsx
B订单223456788.xlsx
等文件,我想通过批处理实现文本文档内容为
例:
123456789,
123456788,
123456787,
123456786,
123456785,

223456789,
223456788,

TOP

本帖最后由 qixiaobin0715 于 2022-10-21 16:00 编辑

bat保存为ANSI编码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in ('dir /s /b /a-d ?订单*.xlsx') do (
  4.     set str=%%~na
  5.     echo,!str:~3!,
  6. ))>Sum.txt
复制代码

TOP

回复 5# qixiaobin0715

这个,!str:~3!,是什么意思

TOP

回复 6# moling
不要前面3个字符,取后面的

TOP

回复 7# pd1

谢谢

TOP

本帖最后由 qixiaobin0715 于 2022-10-21 16:12 编辑

如果“订单”前不止一个字符,代码可修改为:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in ('dir /s /b /a-d *订单*.xlsx') do (
  4.     set str=%%~na
  5.     echo,!str:*订单=!,
  6. ))>Sum.txt
复制代码

TOP

回复 6# moling


字符串截取,参考set命令教程第8页
http://bbs.bathome.net/thread-31727-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表