По сравнению с худшими куски исходного кода, который я когда-либо написанных, это один, безусловно, под первую тройку.
Однако, выполнив почти все возможные ошибки начинающего участника, приведенный ниже код, наконец, делает то, что мне нужно (учитывая ограничение, упомянутое в коде).
Он будет скрывать все папки и файлы под предопределенной корневой папкой myServerFolder
. myServerFolder
должен иметь следующий синтаксис, включая окончательную косую черту: $/myProject/myFolder/
.
Если у кого-то есть хорошая идея, чтобы упростить код или обнаружил ошибку, пожалуйста, отредактируйте его напрямую или дайте мне знать.
Еще раз спасибо за вашу поддержку!
@echo off
setlocal enabledelayedexpansion
REM Limitation: Folder and file names must not end with ")" nor start with "$"
set myServerFolder=$/myProject/myFolder/
REM Process Folders
for /f "Tokens=*" %%a in ('tf.exe dir %myServerFolder%') do (SET TEXT=%%a& SET SUBSTR_A=!TEXT:~-1!& SET SUBSTR_B=!TEXT:~0,1!& (IF "!SUBSTR_A!" NEQ ":" IF "!SUBSTR_A!" NEQ ")" (IF "!SUBSTR_B!" EQU "$" (set currParam=!TEXT:~1!&(tf.exe workfold /cloak "%myServerFolder%%!currParam!")))))
REM Process Files
for /f "Tokens=*" %%a in ('tf.exe dir %myServerFolder%') do (SET TEXT=%%a& SET SUBSTR_A=!TEXT:~-1!& SET SUBSTR_B=!TEXT:~0,1!& (IF "!SUBSTR_A!" NEQ ":" IF "!SUBSTR_A!" NEQ ")" (IF "!SUBSTR_B!" NEQ "$" (set currParam=!TEXT!&(tf.exe workfold /cloak "%myServerFolder%%!currParam!")))))
PAUSE
См. Http://stackoverflow.com/a/636391/736079 для подстрок – jessehouwing
Я предложил возможное решение. Не стесняйтесь комментировать. – Rickson
Я бы обернул его в PowerShell, чтобы иметь возможность забыть об этих конструкциях и переменных синтаксических манипуляций с переменной манипуляцией в пакетных файлах;) – jessehouwing