我在for循环中遇到了一个简单的批处理程序问题。
基本上,如果文件名以' LOTTR'开头,程序应该适用于文件夹中的每个文件。它应该将文件复制到位置Y:\ ELCWork1-Rus。如果没有那么它应该被复制到Y:\ ELCWork2-Oth。我已经使用了2个if而不是if..else用于未来的子字符串比较......
我需要将评估的子字符串与固定值进行比较。 在下面的代码中 - 逻辑始终无法匹配。我尝试使用和不使用双引号,并在for循环内外设置变量。
@echo off
setlocal ENABLEDELAYEDEXPANSION
set %c=LOTTR
for %%s in (*.csv) do (
set tmp1=%%s
set vt1=!tmp1:~0,5!
set vt2=!tmp1:~0,55!
set "cmv=LOTTR"
echo !tmp1:~0,10!
echo !vt1!
echo %%c
if /I "!vt1!"=="LOTTR" (
echo "Matches"
Xcopy !tmp1! "Y:\ELCWork1-Rus"
)
if /I NOT "!vt1!"=="LOTTR" (
echo "No Match"
Xcopy !tmp1! "Y:\ELCWork2-Oth"
)
)
答案 0 :(得分:0)
您在行set vt1=!tmp1:~0,5!
后面添加了一个空格。字符串成为" LOTTR"如果文件以" LOTTR":
@echo off
setlocal ENABLEDELAYEDEXPANSION
for %%s in (*.csv) do (
set tmp1=%%s
set vt1=!tmp1:~0,5!
if /I "!vt1!"=="LOTTR" (
echo "Matches"
Xcopy !tmp1! "Y:\ELCWork1-Rus"
)
if /I NOT "!vt1!"=="LOTTR" (
echo "No Match"
Xcopy !tmp1! "Y:\ELCWork2-Oth"
)
)