Синтаксис / скрипт для выбора только созданных файлов% date% (сегодня) для пакетного файла? - PullRequest
0 голосов
/ 18 октября 2018

Создан командный файл для загрузки в наши файлы AutoCAD '.scr' в определенном каталоге, которые были созданы сегодня.Я не уверен, что делать то, что мне нужно, если я должен использовать вместо этого FORFILES.Код работает, но не для файлов, созданных сегодня.

Я попытался привести аргументы, такие как

(%~ti :: FindSTR %DATE%)

и, как предлагается в комментариях:

ECHO %~ti |FindSTR %DATE% && (echo today) || (echo other day)

попытаться также указать дату для команды FOR при поиске файлов, которые нужно открыть, и найти .open для замены на OPEN Y , но imне уверен в синтаксисе или где я могу добавить его в сценарий.

Сценарий, похоже, собирается во все файлы и сохраняет его, даже если текст НЕ ДОЛЖЕН быть изменен, однако изменение этого параметра на изменение только тех файлов, которые были созданы или изменены в последний раз, предотвратит это.

 @echo off 
 setlocal enableextensions disabledelayedexpansion

 FOR /R "V:\PPY005\CSC\Script Maker" %%S in (*.scr) DO (
    for /f "delims=" %%i in ('type "%%S" ^& break ^> "%%S" ') do (
         set "line=%%i"
         setlocal enabledelayedexpansion
         >>"%%S" echo(!line:.open=open y!
         endlocal
     )

 )

Мне нужно, чтобы он применялся только к файлам, созданным сегодня, поскольку это могло бы создать некоторую путаницу, когда мы загружали их вручную, и было бы непонятно, если бы кто-то загрузил, который был датирован в названии, например 9-10-IMP-EM.scr и появляются сверху, как если бы он был создан / изменен на сегодняшний день.

Мне нужен каталог, указанный в списке, так как этот пакет не будет находиться в корневом каталоге изменяемых файлов, и сценарий ищет файлы в этом каталоге с определенным типом файлов, мы предпочитаем помещать сценарии в специальный каталог.и просто ссылаясь на них из этого сетевого расположения, например, открывая связанное местоположение из документа или используя пакетный файл, который будет иметь меню для выбора и запуска определенных пакетных файлов, на которые есть ссылки (мне не нужна помощь, я знаю, как это сделать)

Я как бы вытаскиваю из этого волосы, так как не могу найти в Интернете документацию о том, как это сделать с помощью команды FOR.Я начинающий, так сказать, в пакетных файлах, я уже написал несколько к этому моменту, но я не уверен, как это сделать.

Я понимаю, что это МОЖЕТ быть легче сделать через Powershell, но компания, в которой я работаю, неразрешить нам использовать powershell по соображениям безопасности.

1 Ответ

0 голосов
/ 18 октября 2018

Вы можете использовать команду FORFILES для выбора файлов на основе даты.Затем вы можете проанализировать вывод команды FORFILES с помощью команды FOR /F, которая затем будет вложена прямо в ваш исходный код.

@echo off 
setlocal enableextensions disabledelayedexpansion

FOR /F "delims=" %%G IN (
    'FORFILES /P "V:\PPY005\CSC\Script Maker" /M *.scr /D +0 /C "cmd /c echo @path"'
) DO (
for /f "delims=" %%H in ('type "%%~G" ^& break ^> "%%~G" ') do (
    set "line=%%H"
    setlocal enabledelayedexpansion
    >>"%%~G" echo(!line:.open=open y!
    endlocal 
)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...