03a01Fa.wav
03a01Nc.wav
03a01Wa.wav
我有这个文本文件
使用批处理文件我想要追加"愤怒"如果大写字母是W,如果字母是F,那么"快乐",N代表"中性"。有可能吗?
我想要这样
03a01Fa.wav,happy
03a01Nc.wav,neutral
03a01Wa.wav,anger
提前致谢,期待解决方案。
答案 0 :(得分:1)
@echo off
setlocal EnableDelayedExpansion
rem Define the equivalences array
for %%a in ("W=anger" "F=happy" "N=neutral") do (
for /F "tokens=1,2 delims==" %%b in (%%a) do (
set "append[%%b]=%%c"
)
)
for /F %%a in (theFile.txt) do (
set name=%%a
for /F %%b in ("!name:~5,1!") do echo %%a,!append[%%b]!
)
您可以在this post的批处理文件中查看阵列管理。
答案 1 :(得分:1)
使用FIND
的另一种方式:
@echo off
for /f "delims=" %%a in (file.txt) do (
echo %%a | find "F">nul && echo %%a,happy
echo %%a | find "N">nul && echo %%a,neutral
echo %%a | find "W">nul && echo %%a,anger)
如果您需要文件(output.txt
)中的输出:
@echo off
for /f "delims=" %%a in (file.txt) do (
echo %%a | find "F">nul && echo %%a,happy
echo %%a | find "N">nul && echo %%a,neutral
echo %%a | find "W">nul && echo %%a,anger)>output.txt
答案 2 :(得分:0)
@echo off
setlocal enabledelayedexpansion
(for /f %%i in (t.t) do (
set a=%%i
set a=!a:~5,1!
if !a!==F echo %%i,happy
if !a!==N echo %%i,neutral
if !a!==W echo %%i,angry
))>o.t
答案 3 :(得分:0)
@echo off
setlocal enableextensions disabledelayedexpansion
(for /f "usebackq" %%a in ( "wavfile.txt" ) do (
for /f "delims=0123456789abcdefghijklmnopqrstuvwxyz" %%b in ("%%a") do (
if %%b==W (
echo %%a,anger
) else if %%b==F (
echo %%a,happy
) else if %%b==N (
echo %%a,neutral
)
)
)) > wavFileOut.txt