Я просто завершу свой сценарий при копировании структуры папок для каждой строки текстового файла. Нам нужна папка с подпапками для каждого клиента. Клиентскую папку «Тест» следует поместить в папку \ path \ e $ \ Relaties \ T \ Test. Таким образом, для каждого начального информационного бюллетеня определенная папка, а для остальных - числа или символы - папка «_Overig» (другая).Пакетный файл заменяет определенные символы
Это все работает отлично, но у меня есть проблемы со специальными символами, как% */\ ' "и так далее. В примере ниже, я хочу, чтобы удалить все «S в FOLDERNAME, так как Windows, не поддерживает Я делаю это с установкой var =! var2: = !, но это не сработает. Кроме того, когда строка в текстовом файле содержит!, скрипт также сработает. Я могу сбежать, нажав ^! instedad of! in пакетный файл, но так как она порождается интранетем я хочу пакетный файл ниже просто иметь дело с! s и избежать его самого по себе.
Пожалуйста, помогите мне.
setlocal EnableDelayedExpansion
set file=E:\list.txt
FOR /F "delims=~" %%i IN (!file!) DO (
echo %%i
set var2=%%i
set var=!var2:*=!
set str=!var:~0,1!
IF /i !str!==A (set letter=1&&set str=A)
IF /i !str!==B (set letter=1&&set str=B)
IF /i !str!==C (set letter=1&&set str=C)
IF /i !str!==D (set letter=1&&set str=D)
IF /i !str!==E (set letter=1&&set str=E)
IF /i !str!==F (set letter=1&&set str=F)
IF /i !str!==G (set letter=1&&set str=G)
IF /i !str!==H (set letter=1&&set str=H)
IF /i !str!==I (set letter=1&&set str=I)
IF /i !str!==J (set letter=1&&set str=J)
IF /i !str!==K (set letter=1&&set str=K)
IF /i !str!==L (set letter=1&&set str=L)
IF /i !str!==M (set letter=1&&set str=M)
IF /i !str!==N (set letter=1&&set str=N)
IF /i !str!==O (set letter=1&&set str=O)
IF /i !str!==P (set letter=1&&set str=P)
IF /i !str!==Q (set letter=1&&set str=Q)
IF /i !str!==R (set letter=1&&set str=R)
IF /i !str!==S (set letter=1&&set str=S)
IF /i !str!==T (set letter=1&&set str=T)
IF /i !str!==U (set letter=1&&set str=U)
IF /i !str!==V (set letter=1&&set str=V)
IF /i !str!==W (set letter=1&&set str=W)
IF /i !str!==X (set letter=1&&set str=X)
IF /i !str!==Y (set letter=1&&set str=Y)
IF /i !str!==Z (set letter=1&&set str=Z)
IF !letter!==1 (set pad=\\fs1\e$\Data\Relaties\!str!\!var!) ELSE (set pad=\\fs1\e$\Data\Relaties\_Overig\!var!)
set oudpad=\\fs1\e$\Data\Klanten\!var!
xcopy "\\fs1\e$\Data\Relaties\_template\_template" "!pad!" /T /E /O /I
robocopy "!oudpad!\adviesrapporten" "!pad!\Documentatie\Adviesrapporten" /ZB /COPY:DAT /R:3 /W:1
set letter=0
)
Edit:
Fixed звездочки вещи с помощью множества вара = вар: ** =!
Но все же, если я хочу имя папки с помощью! в нем сценарий игнорирует его.
Работает как очарование. Благодаря! – Mbrouwer88