Подключить ЯндексДиск в качестве сетевого
@echo off
echo.
echo.
echo Подождите...
net use w: https://webdav.yandex.ru пароль /USER:логин
rem Пустые кавычки ниже обязательны
start "" "w:\"
Создание папки с текущей датой
@echo off
color 17
echo.
echo ************
echo Создаю папку
echo ************
echo.
echo.
md %date%
echo.
echo Закроюсь через секунду...
ping -n 1 -w 1000 127.0.0.1 > nul
Удаление папки , если та существует и создание ее заново:
if exist new rd /s /q new
md new
Создание файлов на основе исходных, оставив только части строк:
find /n /v - вывод номеров (ключ /n) и строк, НЕ содержащих указанное в кавычках (ключ /n)
[цифра] - номер нужной строки
FOR /F ["ключи"] %переменная IN (набор-файлов) DO команда [параметры]
FOR /F ["ключи"] %переменная IN ("строка") DO команда [параметры]
FOR /F ["ключи"] %переменная IN ('команда') DO команда [параметры]
или, если использован параметр usebackq:
usebackq - применение новой семантики, при которой строка, заключенная в обратные кавычки, выполняется как команда, строка, заключенная в прямые одиночные кавычки, является строкой-литералом, а двойные кавычки могут использоваться для задания имен файлов в наборе.
Используется, если искомый элемент содержит пробел. А в этом случае нужно использовать двойные кавычки. Иначе двойные кавычки будут восприняты как определение строки-литерала для разбора.
FOR /F ["ключи"] %переменная IN (набор-файлов) DO команда [параметры]
FOR /F ["ключи"] %переменная IN ('строка') DO команда [параметры]
FOR /F ["ключи"] %переменная IN (`команда`) DO команда [параметры]
Пример:
for /f "tokens=*" %%i in ('dir /b *.txt') do (
for /f "usebackq delims= tokens=2" %%j in (`find /n /v "" %%i ^| find "[9]"`) do echo %%j >> new/2-%%i)
здесь разделителем является табуляция
Символ "^" используется для экранирования специальных символов, которые по синтаксису несут особую нагрузку. Например, echo ^<html^>
Символ "|" Считывает выходные данные одной команды и записывает их на вход другой команды. Эта процедура известна под названием «канал».
Пример:
for /f "tokens=*" %%i in ('dir /b *.txt') do (
for /f "skip=10 delims= tokens=2" %%j in (%%i) do echo %%j >> new/2-%%i)
здесь разделителем является пробел
for /f "tokens=*" %%i in ('dir /b *.txt') do (
for /f "usebackq delims= tokens=2" %%j in (`find /n /v "" %%i ^| find "[10]"`) do echo %%j >> new/2-%%i)
Создание файлов на основе исходных, оставив только 6 строк, пропустив первые 5
for /f "tokens=*" %%i in ('dir /b *.txt') do (
for /f "skip=5 delims=* tokens=1-6" %%j in (%%i) do (
echo %%j >> new/2-%%i
echo %%k >> new/2-%%i
echo %%l >> new/2-%%i
echo %%m >> new/2-%%i
echo %%n >> new/2-%%i
echo %%o >> new/2-%%i)
)
Скрыть окно командного файла при запуске программы можно, добавив "start" перед строкой вызова программы
|