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

[文本处理] 【已解决】求助批处理如何在输出文件名的时候,将特定的英文单引号字符替换掉呢?

本帖最后由 kimycai 于 2022-12-5 19:17 编辑
  1. for %%a in (*.flac) do ffmpeg -y -i "%%a" -acodec pcm_s24le  -ar 48000  "%%~na.wav"
复制代码
此代码是将flac文件转换成wav,并以同文件名输出,
那如何在输出文件名时,将原有文件名中的英文单引号(')替换成中文字符的单引号(’)并输出呢?
PS:只要遇到文件名中有英文单引号,一律替换并输出

回复 2# qixiaobin0715


    是吗,那我检查下文件名是不是英文字符

TOP

英文双引号在文件名中是非法的吧!你可以试着手工把双引号添加到文件名中测试一下。
qixiaobin0715 发表于 2022-12-5 11:00



    对对,应该只是单引号要替换,我修改下内容

TOP

中文的引号不是分左右的吗?
77七 发表于 2022-12-5 11:35



    需要加上CHCP 65001,可以用了,谢谢

TOP

回复 6# Batcher


    单引号在歌曲名里,比如英文歌曲名是需要的,所以还是要稍微保留一下,只要显示在右上方就可以了

TOP

回复 7# qixiaobin0715


    英文的引号在传递参数时会引起命令行出错,所以必须要替换掉

TOP

回复 5# 77七


    set "out=!out:'=‘!"
请问这句是什么意思,包括第一个out和第二个out?

TOP

回复 12# tmplinshi


    这段暂时还不理解,得好好学习,感谢版主大大

TOP

回复  kimycai


        
这样估计好理解了..“=”前后是被替换和替换后的内容
77七 发表于 2022-12-5 17:10



    就是把 !out1:'=‘! 再赋值给out2的意思吗

TOP

本帖最后由 kimycai 于 2022-12-5 19:50 编辑

回复 18# Batcher


    多谢admin指路!

TOP

中文的引号不是分左右的吗?
77七 发表于 2022-12-5 11:35



    但是,在遇到文件名中有英文感叹号时,这条命令就会被忽略跳过,该怎么修改呢?

TOP

本帖最后由 kimycai 于 2022-12-8 09:02 编辑
tmplinshi 发表于 2022-12-8 00:45



    转换不了,提示“09 - Asuka Strikes.flac: No such file or directory”,且flac文件没有被转换掉,原本的文件名是“09 - Asuka Strikes!.flac”

TOP

本帖最后由 kimycai 于 2022-12-8 09:02 编辑

回复 25# 77七


    转换不了,提示“09 - Asuka Strikes.flac: No such file or directory”,且flac文件没有被转换掉,原本的文件名是“09 - Asuka Strikes!.flac”,该如何修改呢

TOP

回复 25# 77七


    如果引用时不用感叹号,是不是可以用其他方法来代替感叹号的引用呢,这样问题是不是能解决?

TOP

回复 25# 77七


    是不是不保留感叹号会更好处理,但是感觉替换不掉感叹号

TOP

返回列表