Я пытаюсь разбить строку в формате: client_subfolder_filename на три переменные: client
, subfolder
и filename
(что также включает расширение)
Но я не могуудается проверить, не удалось ли выполнить синтаксический анализ (в этом случае файл не является допустимым файлом и его следует игнорировать)
Я попытался ==""
, ==[]
, not defined
, not exist
, но ничегопохоже на работу.В идеале я хотел бы проверить, является ли client
, subfolder
или fileName
пустой строкой
Вот мой сценарий
@echo off
setlocal ENABLEDELAYEDEXPANSION
::mainDir is the directory where the customerfolders and the scripts are located
set mainDir=C:\Users\Me\Desktop\MyScript\src
cd %mainDir%
cd FilesToMove
set /a count=1
set client=""
set subfolder=""
set fileName=""
for %%i in (*) do (
echo !count! %%i
set /a count=count+1
for /F "tokens=1,2,3 delims=_" %%a in ("%%i") do (
set client=%%a
set subfolder=%%b
set fileName=%%c
if "!subfolder!" == "" goto NEXT
if "!fileName!" == "" goto NEXT
if not exist "%mainDir%\!client!\!subfolder!\" (mkdir "%mainDir%\!client!\!subfolder!")
move %%i "%mainDir%"\!client!\!subfolder!\!fileName!"
:NEXT
)
)