我在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"
)
)
使用擴展集語法避免你的尾隨spaces.'set「TMP1 = %%的」'和'設置「VT1 = TMP1! :〜0,5「! '... – jeb
謝謝傑布 - 這將排序它 – DavScrim