我希望批处理文件只能以小写字母进行更改
更改是在每个A(从字母顺序)到-A
之前进行的让我说他写完“AbkijCljfs”后会比较“-Abkij-Cljfs”
没有使用cmd的外部文件
答案 0 :(得分:3)
@echo off
setlocal enableextensions disabledelayedexpansion
set "string=AbkijCljfs"
set "buffer="
for /f "delims=" %%a in ('
cmd /q /u /c "(echo(%string%)" ^| more
') do (
set "dash=-"
for /f "delims=ABCDEFGHIJKLMNOPQRSTUVWXYZ" %%b in ("%%a") do set "dash="
setlocal enabledelayedexpansion
for /f "delims=" %%b in ("!buffer!!dash!") do (
endlocal
set "buffer=%%b%%a"
)
)
echo([%buffer%]
这使用通过管道传输到cmd
的unicode more
实例来拆分字符串和for
循环,以确定每个字符是否为大写。
答案 1 :(得分:0)
使用sed或perl
echo 'AbC' | sed 's/\([A-Z]\)/-\1/g'
为每个文件执行此操作
for i in `ls -1`; do
sed 's/\([A-Z]\)/-\1/g' $i > $i_fixed
done
或者您可以使用ed
来执行此操作