%DATE% и %TIME% в пакетных файлах без учета локали?

Программистам часто приходится работать в консоли — например, чтобы запустить тестирование проекта,  закоммитить новый код на Github
 или отредактировать документ в vim. Всё это происходит так часто, что все основные действия с файлами становится быстрее и привычнее выполнять в консоли. Рассказываем и показываем основные команды, которые помогут ускорить работу в терминале под OS Windows.

Для начала нужно  установить терминал
 или запустить командную строку, встроенную в Windows — для этого нажмите Win+R
и введите cmd
. Терминал часто встречается и прямо в редакторах кода, например, в  Visual Studio Code
.

Чтобы ввести команду в консоль, нужно напечатать её и нажать клавишу  Enter
.

How to display the current directory path with cmd commands?

The cd command is one of the most used commands in MS-DOS. It is used to change directories. This command can be used to navigate the directory structure and find files on a computer or a server. From the command prompt program called cmd.exe in the system, simply se the cd command.

 cd 
Display the current directory path with cmd using the cd command
Display the current directory path with cmd

Use the current directory in a batch file using variables

In a batch file it is a very similar approach, the difference is that the current directory name is stored like a system variable, with two percentage symbols. From a batch script, i.e., a .bat file.

 %cd% 

Script to display the current path dynamically using cmd

For example, use this simple example to assign a batch variable with the current directory path and display it to the screen. To use this example, simply copy and paste the code below to a BATCH file, for example DisplayDirectory.bat and execute it.

 echo off
rem the previous command is disabling echo to avoid all lines on the execution screen
rem setting the variable with the current directory value
set VarPath=%CD%
rem displaying the variable on the prompt screen
echo "The current folder is:"
echo %VarPath%
rem setting a 15 seconds timeout to let the prompt displayed
timeout 15 

The cd command is also useful to change the current drive and to navigate to the parent folder. To display the cd command help from within a command prompt, simply type this command:

 cd /? 

В командной строке Командной строки Windows (CMD) по умолчанию нет возможности создать файла используя текущие дату и время,  для их использования необходимо сначала преобразовать в формат с использованием ограничений в имени файлов.

Стандартными средствами Windows мы не можем организовать ротацию. Можно попробовать использовать переменные %date% и %time%, но содержание в них запрещенных символов, просто вызовет ошибку.

CMD date time

Получаем дату и время

В начале командного файла пишем следующий текст:

 set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
set _my_datetime=%_my_datetime:,=_% 

В итоге в перемененной %_my_datetime% мы будем иметь текущую дату и время в формате не нарушающем правила именования файлов.

Получаем только дату

Если нужна просто дата то пишем следующее:

 set _my_datetime=%date%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
set _my_datetime=%_my_datetime:,=_% 

Ну тут мы просто убрали из переменной переменную времени.

Пример формирования файла с использованием текущей даты и времени в CMD

Пример скрипта использующегося для создания архивов DrWeb CureIt! за сутки с помощью WGET под Windows.

 echo off
cls
set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
set _my_datetime=%_my_datetime:,=_%
C:\Install\wget.exe —no-cache -O C:\mirror\CureIT\%_my_datetime%.exe http://www.freedrweb.com/download+cureit/gr/?lng=ru 

Сеанс по времени, зависящий от региона,

Выходной формат %DATE%
и команды dir
зависит от региона и, следовательно, не является ни надежным, ни умным. date.exe
(часть UnxUtils
) предоставляет любые дату и время в любом воображаемом формате. Вы также можете извлечь информацию о дате/времени из любого файла с помощью date.exe
.

Примеры: (в cmd- script используйте %% вместо%)

date.exe +"%Y-%m-%d"

2009-12-22

date.exe +"%T"

18:55:03

date.exe +"%Y%m%d %H%M%S: Any text"

20091222 185503: Любой текст

date.exe +"Text: %y/%m/%d-any text-%H.%M"

Текст: 09/12/22 – любой текст-18.55

Command: date.exe +"%m-%d """%H %M %S """"

07-22 “18:55:03” `

Информация о дате/времени из справочного файла:

date.exe -r c:\file.txt +"The timestamp of file.txt is: %Y-%m-%d %H:%M:%S"

Используя его в CMD script, чтобы получить информацию о год, месяц, день, время:

 for /f "tokens=1,2,3,4,5,6* delims=," %%i in ('C:\Tools\etc\date.exe +"%%y,%%m,%%d,%%H,%%M,%%S"') do set yy=%%i& set mo=%%j& set dd=%%k& set hh=%%l& set mm=%%m& set ss=%%n 

Используя его в CMD script, чтобы получить отметку времени в любом требуемом формате:

 for /f "tokens=*" %%i in ('C:\Tools\etc\date.exe +"%%y-%%m-%%d %%H:%%M:%%S"') do set timestamp=%%i 

Извлечение информации о дате/времени из любого ссылочного файла.

 for /f "tokens=1,2,3,4,5,6* delims=," %%i in ('C:\Tools\etc\date.exe -r file.txt +"%%y,%%m,%%d,%%H,%%M,%%S"') do set yy=%%i& set mo=%%j& set dd=%%k& set hh=%%l& set mm=%%m& set ss=%%n 

Добавление в файл информации о дате/времени:

 for /f "tokens=*" %%i in ('C:\Tools\etc\date.exe -r file.txt +"%%y-%%m-%%d.%%H%%M%%S"') do ren file.txt file.%%i.txt 

date.exe часть бесплатных инструментов GNU
, которые не требуют установки.

ПРИМЕЧАНИЕ. Копирование date.exe
в любой каталог, находящийся в пути поиска, может привести к сбою других сценариев, которые используют встроенную команду date
для Windows.

Is there a shortcut for C:\Users\<current user>\
?

There is no direct shortcut.

There are a couple of different solutions (see below).

  1. Use an environment variable together with cd
    or cd /d

  2. Use subst
    or net use
    to creating a mapping to another drive letter.

  3. Install cygwin
    and use bash

  4. Use powershell
    – powershell supports ~

The last solution is probably the simplest if you are prepared to use powershell
instead of cmd
.


Solution 1: Use an environment variable together with cd
or cd /d

 setx DOCS %USERPROFILE% 

This will permanently set the environment variable DOCS
, but in order to use use it you need to first start a new cmd
shell, then the variable is defined and ready to use:

 F:\test>echo %DOCS%
C:\Users\DavidPostill\ 
 cd /d %DOCS% 

If you are already on drive c:
you can just use:

 cd %DOCS% 

Create a batch file ( docs.cmd
) and put it somewhere in your PATH
.

 @echo off
cd /d %DOCS% 

:/>  Ссылка на майнер вирусов

Solution 2: Use subst
or net use
to creating a mapping to another drive letter.

You can use subst
:

 subst x: %USERPROFILE% 
 x: 

Unfortunately drive mappings do not persist across reboots.

net use
will persist across reboots, for example:

 net use x: "\\computerName\c$\pathName" /persistent:yes 

See the answers in How to make SUBST mapping persistent across reboots?
for detailed instructions.


Solution 3: Install cygwin
and use bash

You could consider installing cygwin
:

  • a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.

Once you have installed cygwin you can run bash
in a cygwin terminal and set the bash environment variable HOME
as appropriate.

Alternatives to cygwin include msys (MingW)
:

MSYS is a collection of GNU utilities such as bash, make, gawk and grep to allow building of applications and programs which depend on traditionally UNIX tools to be present. It is intended to supplement MinGW and the deficiencies of the cmd shell.

And Git for Windows
:


Solution 4: Use powershell

As pointed out in a comment on another question by SBI
powershell supports ~
and you can just type:

 cd ~ 

Further Reading

I have scheduled backup script that makes the database dump.
How can I add the date timestamp to the file name?

I am talking about Windows and CMD.

asked Jun 1, 2009 at 11:38

Bogdan Gusiev's user avatar

In the command prompt and batch files, you can use %date%
and %time%
to return the date and time respectively. Date works fine, but the time value returned contains colons, which are illegal for use in filenames, but there is a way to remove those.

Используйте что-то вроде:

 COPY file.txt file_%time:~0,2%%time:~3,2%%time:~6,2%_%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt 

Это создаст имя файла, такое как file_172215_01062009.txt

Обновление:
В комментариях ниже есть интересные особенности этой команды, а также некоторые потенциальные проблемы, которых можно избежать.

ответил 1 июня 2009 в 11:53

aalaap's user avatar

3 серебряных значка
6 бронзовых знаков

Используйте %DATE%
и/или %TIME
переменные среды, опционально заменяя символы, которые не разрешены в именах файлов, используя %name:from=to%
( %TIME::=%
удалит все двоеточия).

 теория » echo %date%
2009-06-01
теория » эхо %time%
16:30:41,46
теория » эхо %time::=%
163052,17
теория » эхо %time::=,%
16,30,58,68
теория » echo backup-%date%-%time::=-%.zip
резервная копия-2009-06-01-16-31-18,82.zip 

ответил 1 июня 2009 в 13:32

user1686's user avatar

1 золотой значок
26 серебряных значков
42 бронзовых знака

 @echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause 

ответил 28 марта 2019 в 17:57

Eric Ouellet's user avatar

Использовать переменную %DATE% в имени файла.

Существует также переменная %TIME%, но она содержит символы, недопустимые в имени файла.

Вот пример записи строки текста в новый файл, где созданный файл имеет дату и время в своем имени.

 echo "testfile" >> backup-%DATE%.txt 

ответил 1 июня 2009 в 11:49

Frode Lillerud's user avatar

Фроде Лиллеруд

3 золотых значка
18 серебряных значков
20 бронзовых знаков

Используйте %date%
и %time%
переменные, и вы можете использовать For /f
команда для анализа токенов, разделенных /
или локальный формат для изменения форматов.

ответил 25 сен 2020 в 2:29

Wasif's user avatar

2 серебряных значка
8 бронзовых знаков

%DATE%
и %TIME%
переменные среды предоставляют текущую дату и время на компьютерах Windows в командной строке и внутри пакетного файла.

К сожалению, эти значения зависят от локали! В том смысле, что, скажем, на немецкой машине вы получите

 26.1.2011 
 2011-26-01 

это портит сортировку, если вы хотите использовать эту переменную в имени файла.

Есть ли простой способ узнать локаль, не зная YYYY-MM-DD
строка даты в пакетном файле Windows?

На данный момент я работаю с этим довольно неуклюжим обходным путем:

 for /f "tokens=1,2,3,4 delims=. " %%i in ('date /t') do set date=%%k-%%j-%%i
echo %date% 

, но теперь это специфично для немецкой локали – очевидно, полностью независимым решением было бы много
лучше.

Речь идет об ОС Server 2008. Я бы предпочел не использовать сторонний инструмент, если это вообще возможно.

спросил 26 янв. 2011 в 20:39

Pekka's user avatar

3 золотых значка
20 серебряных значков
32 бронзовых знака

Было несколько попыток ( Роб ван дер Вуд
что-то было), но на самом деле ничего не работало во всех локалях. Однако вы можете получить текущее время в удобном для анализа формате с помощью

 wmic os get LocalDateTime 
 @echo off
rem Get the time from WMI - at least that's a format we can work with
set X=
for /f "skip=1 delims=" %%x in ('wmic os get localdatetime') do if not defined X set X=%%x
echo.%X%
rem dissect into parts
set DATE.YEAR=%X:~0,4%
set DATE.MONTH=%X:~4,2%
set DATE.DAY=%X:~6,2%
set DATE.HOUR=%X:~8,2%
set DATE.MINUTE=%X:~10,2%
set DATE.SECOND=%X:~12,2%
set DATE.FRACTIONS=%X:~15,6%
set DATE.OFFSET=%X:~21,4%
echo %DATE.YEAR%-%DATE.MONTH%-%DATE.DAY% %DATE.HOUR%:%DATE.MINUTE%:%DATE.SECOND%.%DATE.FRACTIONS% 

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

:/>  Максимум ядер процессора и памяти в конфигурации windows почему не нужно настраивать

ответил 26 января 2011 в 21:53

Joey's user avatar

11 серебряных значков
13 бронзовых знаков

Вот двухстрочный код, который я использовал, и он работает независимо от версии Windows или настроек местного времени:

 FOR /f %%a in ('WMIC OS GET LocalDateTime ^| find "."') DO set DTS=%%a
set CUR_DATE=%DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2% 
 yyyy-mm-dd 

Я попытался сделать его однострочным с помощью &&, но, похоже, это не сработало, поэтому я прибегнул к двухстрочному варианту. Надеюсь это поможет.

ответил 23 июля 2014 в 19:19

Vocatus Gate's user avatar

Я использую этот трюк, чтобы получить UTC.

 for /f "tokens=*" %%i in ('tzutil /g') do set CTZ=%%i
tzutil /s UTC
set UTC=
for /f "skip=1 delims=" %%i in ('WMIC OS GET LocalDateTime') do if not defined UTC set UTC=%%i
tzutil /s "%CTZ%"
set UTC=%UTC:~0,4%-%UTC:~4,2%-%UTC:~6,3%T%UTC:~8,13%
echo %UTC% 

Однако у этого есть побочный эффект кратковременного изменения всей системы на UTC. Это, вероятно, нормально на персональной рабочей станции, но не уверен, как это повлияет на большой рабочий сервер, который, вероятно, в любом случае должен быть настроен на UTC.

ответил 9 марта 2019 в 18:43

mark d drake's user avatar

Вот мое решение этой проблемы:

 @echo off
set curtime=
for /f "tokens=*" %%x in ('powershell -NoLogo -NonInteractive -OutputFormat Text -Command "[DateTime]::Now.ToString(\"yyyy-MM-dd HH:mm:ss\")"') do set curtime=%%x
echo %curtime% 

Конечно же, как и время UTC:

 set curtime=
for /f "tokens=*" %%x in ('powershell -NoLogo -NonInteractive -OutputFormat Text -Command "[DateTime]::UtcNow.ToString(\"yyyy-MM-dd HH:mm:ssK\")"') do set curtime=%%x
echo %curtime% 

Вы можете сколько угодно играться с форматированием, вывод стабилен независимо от Windows или CurrentLocale (здесь требуется минимальное знание Powershell и .Net).

Dave M's user avatar

21 золотой значок
30 серебряных значков
30 бронзовых знаков

ответил 10 марта 2021 в 1:53

marian.pascalau's user avatar

Можно ли получить текущее имя папки (не путь к текущему каталогу) с помощью команды DOS? Если да, то как?

Самое близкое, что я получил, было это, но это не так:

 for /f "delims=\" %%a in ("%CD%") do set CURR=%%a
echo.DIR: %CURR% 

примечание: в приведенной выше попытке я пытался токенизировать строку и получить последний токен, установленный в качестве переменной CURR.

Oliver Salzburg's user avatar

спросил 6 июля 2010 в 21:29

djangofan's user avatar

Самый короткий путь, который я нашел:

 for %I in (.) do echo %~nxI 

или в скрипте .bat:

 for %%I in (.) do echo %%~nxI 

или в формате .bat с параметром «Получить значение в переменной».

 for %%I in (.) do set CurrDirName=%%~nxI
echo %CurrDirName% 

nx означает только имя файла и расширение

PRMan's user avatar

1 серебряный значок
5 бронзовых знаков

ответил 6 июля 2010 в 22:27

Tamara Wijsman's user avatar

Тамара Вийсман

27 золотых значков
185 серебряных значков
256 бронзовых знаков

Если вы хотите узнать текущее местоположение командного файла (и если ваша Windows не очень устаревшая версия), введите for /?
в окне “DOS box”. Прокрутить вниз. Читать.

Вы узнаете, что теперь можете читать (из внутри
пакетный файл) эти переменные:

 %0 - as the name how this batchfile was called
%~d0 - as the drive letter where this batchfile is located ('\\' in case of share)
%~p0 - as path (without the drive letter) where this batchfile is located
%~n0 - as filename (without suffix) of this batchfile
%~x0 - as filename's suffix (without filename) of this batchfile
%~a0 - as this batchfile's file attributes
%~t0 - as this batchfile's date+time
%~z0 - as this batchfile's filesize
%~dpnx0 - as this batchfile's fully qualified path+filename
[... and then some more ...] 

Это работает во многих случаях. Предположим, пакетный файл называется mytest.bat
. Вы можете называть это по-разному:

  1. ..\..\to\mytest.bat
    . (относительный путь)
  2. d:\path\to\mytest.bat
    . (полный путь)
  3. \\fileserver\sharename\mytest.bat
    . (путь на удаленном ресурсе)

ответил 7 августа 2010 в 14:55

Kurt Pfeifle's user avatar

Курт Пфайфле

2 золотых значка
54 серебряных знака
71 бронзовый знак

Мне лично нравился ответ Тома, пока он не боролся с точками в именах каталогов. Это
подсказал:

 for /f "delims=\" %%a in ("%cd%") do echo topmost dir: %%~nxa 

ответил 17 ноя 2011 в 9:20

Marc Wittke's user avatar

Марк Витке

3 серебряных значка
10 бронзовых знаков

Ответ Тома хорош, но если у вас есть имя каталога с точкой в ​​нем (например, wxwidgets-2.9.4), вы получите только полное имя. Таким образом, это выведет wxwidgets-2.9 ​​вместо этого, потому что .4 рассматривается как расширение (да, даже если это имя каталога!).

Чтобы получить полное выходное имя, вы должны добавить расширение в конец:

 FOR %I IN (.) DO Echo %~nI%~xI 

и в пакетном режиме:

 FOR %%I IN (.) DO Echo %%~nI%%~xI 

Или, конечно, вместо этого установите переменную в командном файле:

 FOR %%I IN (.) DO SET CurrentD=%%~nI%%~xI 

ответил 6 августа 2013 в 13:11

Brian Sidebotham's user avatar

Вы можете получить текущий каталог в переменной. Однострочник:

 set a=%cd% 
 echo %a% 

slhck's user avatar

70 золотых значков
605 серебряных значков
592 бронзовых знака

ответил 24 апр 2012 в 15:54

vera's user avatar

1 серебряный значок
1 бронзовый значок

Другой способ:

 set "MyPath=%~dpnx0" & call set "MyPath=%%MyPath:\%~nx0=%%"
echo MyPath=%MyPath%  

работает с “.” и пробелы в пути

Что он делает?

  1. поместить полное имя файла (буква-путь-имя-файла-расширение) в MyPath
    Вар

  2. удалить имя файла и расширение из MyPath
    вар

Он также работает с путями UNC. Если вам нужна обратная косая черта в конце пути. Удалите \
после MyPath
во второй команде набора, например.

 set "MyPath=%%MyPath:%~nx0=%%" 

:/>  Что делать, если батарея на ноутбуке совсем не заряжается

slhck's user avatar

70 золотых значков
605 серебряных значков
592 бронзовых знака

ответил 15 марта 2012 в 10:19

lenz's user avatar

1 серебряный значок
2 бронзовых знака

 for %%d in ("%CD%") do echo %%~nxd 
 set "sPath=."
for %%d in ("%sPath%") do set "sDirName=%%~nxd" 

Будьте осторожны с обратной косой чертой в конце пути, она не должна быть обратной косой чертой в конце.

ответил 10 октября 2016 в 2:11

kygg's user avatar

2 бронзовых знака

Мой ответ в этой теме
делает это в 3 простых строки:

 @echo off
SET "CDIR=%~dp0"
:: for loop requires removing trailing backslash from %~dp0 output
SET "CDIR=%CDIR:~0,-1%"
FOR %%i IN ("%CDIR%") DO SET "PARENTFOLDERNAME=%%~nxi"
ECHO Parent folder: %PARENTFOLDERNAME%
ECHO Full path: %~dp0
pause>nul 

Community's user avatar

ответил 7 дек 2011 в 18:59

djangofan's user avatar

9 золотых значков
33 серебряных значка
35 бронзовых знаков

У меня это работает из пакетного файла. Он возвращает имя текущего рабочего каталога.

 pushd %1 & for %%i in (.) do @echo %%~ni 

Stefan van den Akker's user avatar

ответил 28 мая 2015 в 16:08

nem50's user avatar

2 бронзовых знака

Почти все вышеперечисленные варианты кода приведут к ошибке, если вы вызовете bat-файл извне другим скриптом или программой. Например, этот код: для %%I в (.) установите CurrDirName=%%~nxI, при вызове из Notepad++ будет выводиться Notepad++, но мне точно не нужно имя родительской папки Notepad++!
Это плохой способ.
Кроме того, по той же причине не используйте %cd% и любые другие опции. Используйте только входные параметры этого, возможно, удаленного скрипта. В противном случае вы получите результат для вызывающего, но не вызываемого скрипта и то, что написано в его командной строке, а не то, что должно быть написано в командной строке вызываемого кода.
Используйте этот код, чтобы избежать ошибок:

  set path=%~p0 set path=%path:~0,-1% For %%A in ("%path%") do (Set CurrDirName=%%~nxA) 

ответил 24 мая 2020 в 13:25

Garric's user avatar

3 бронзовых знака

У меня была эта команда, она возвращала мне длинные адреса с пробелами в ~

пример: c:\program files in

c:\files~1
c:\программа~1
как сделать?

ответил 25 декабря 2022 в 19:11

jorge's user avatar

Содержимое папки — dir

Выводит список файлов и папок в текущую папку.

 C:\content-server>dir Том в устройстве C имеет метку SYSTEM Серийный номер тома: 2C89-ED9D Содержимое папки C:\content-server
06.10.2020 00:41 <DIR> .
06.10.2020 00:37 <DIR> .circleci
16.07.2020 16:04 268 .editorconfig
16.07.2020 16:04 10 .eslintignore
16.07.2020 16:04 482 .eslintrc
06.10.2020 00:37 <DIR> .github
16.07.2020 16:04 77 .gitignore
06.10.2020 00:41 <DIR> assets
06.10.2020 00:41 <DIR> gulp
16.07.2020 16:10 379 gulpfile.js
16.07.2020 16:10 296 320 package-lock.json
16.07.2020 16:10 751 package.json
16.07.2020 16:04 509 README.md 

Материалы по теме


«Доктайп» — журнал о фронтенде. Читайте, верьте и учитесь с нами.

Удаление файла — удалить или стереть

Команда для удаления одного или нескольких файлов.

set "MyPath=%~dpnx0" & call set "MyPath=%%MyPath:\%~nx0=%%"
echo MyPath=%MyPath%
Переименование файла — ren или rename

Последовательно вводим

    , старое и новое имя файла.

  • Создать папку — mkdir или md

    MyPath Создаём пустую папку 

  • внутри папки

    :

  • MyPath

     

    Создаём несколько пустых вложенных папок — для этого записываем их через косую черту: set a=%cd%

     echo %a% 

    Создаётся папка 

    , внутри которой находится папка  slhck's user avatar
    . Чтобы проверить это, выполните команду 
    . Она показывает дерево папок.

    Справка по команде — помощь

    Команда
    без аргументов выводится список всех возможных команд.

    вместе с именем команды выведет справку по этой загрузке.

    В этой статье обнаружены не все команды и не все их возможности, но вы всегда могут работать команды
    и узнать о том, что ещё может командная строка.

    👉🏻

    Больше статей о фронтенде и работе в айти в телеграм-канале. vera's user avatar

    Показать дерево папок — дерево

    В любом момент мы можем увидеть развитие папок. Для этого используется команда 
    .

     Если вы хотите посмотреть содержимое всего диска, введите 

    в корне нужного диска. Получится красивая анимация, а если файлов много, то ещё и немного медитативная.

    Перейти в другую папку — cd

    Команда  cd
     без аргументов выводит название текущей папки.

    Перейти в папку внутри текущего каталога:

     C:\content-server>cd assets
    C:\content-server\assets> 

    Перейти на одну папку вверх:

     C:\content-server\assets>cd ..
    C:\content-server> 

    Перейти в папку на другом диске:

     c:\content-server>cd /d d:/
    d:\> 

    Чтобы просто изменить диск, введите  c:
     или  d:
    .

    Открыть файл

    Чтобы открыть файл в текущей папке, введите его полное имя с расширением. Например, blog.txt или setup.exe.

    Команды одной строкой

     d:\html>systeminfo
    Имя узла: DESKTOP-6MHURG5
    Название ОС: Майкрософт Windows 10 Pro
    Версия ОС: 10.0.20246 Н/Д построение 20246
    Изготовитель ОС: Microsoft Corporation
    Параметры ОС: Изолированная рабочая станция
    Сборка ОС: Multiprocessor Free 

    Информация о сетевых настройках —  ipconfig
    .

     d:\html>ipconfig
    Настройка протокола IP для Windows
    Адаптер Ethernet Ethernet 2: Состояние среды. . . . . . . . : Среда передачи недоступна. DNS-суффикс подключения . . . . . : 

    Список запущенных процессов —  tasklist
    .

     c:\>tasklist
    Имя образа PID Имя сессии № сеанса Память
    ========================= ======== ================ =========== ============
    System Idle Process 0 Services 0 8 КБ
    System 4 Services 0 2 688 КБ
    Secure System 72 Services 0 23 332 КБ
    … 

    Удалить папку — rmdir или rd

    Чтобы удалить конкретную папку в текущей, введите команду  rmdir
    :

     d:\html\css>rmdir js 

    При этом удалить можно только пустую папку. Если попытаться удалить папку, в которой что-то есть, увидим ошибку:

     d:\html\css>d:\html>rmdir css
    Папка не пуста. 

    Чтобы удалить дерево папок, используйте ключ  /s
    . Тогда командная строка запросит подтверждение перед тем, как удалить всё.

     d:\html>rmdir css /s
    css, вы уверены [Y(да)/N(нет)]? y