Подскажите пожалуйста как можно используя "net time \\hostname" вывести в стандартный вывод только собственно время на удаленном хосте, выкинув все остальное, что выдает команда ?
» Задачи на bat-файлах 10
anstrem
вариант для исполнения в ком.строке
for /f "tokens=5,*" %a in ('net time \\hostname') do echo.%b & exit
вариант для исполнения в ком.строке
for /f "tokens=5,*" %a in ('net time \\hostname') do echo.%b & exit
anstrem
Код: for /f "tokens=7 ", %%i in ('net time \\172.18.2.46') do (
echo %%i
)
Код: for /f "tokens=7 ", %%i in ('net time \\172.18.2.46') do (
echo %%i
)
res2001
Цитата:
хм.. а как же тогда вызвать 64 бит cmd и где оно находится
c:\Windows\winsxs\amd64_microsoft-windows-commandprompt_31bf3856ad364e35_6.1.7601.17514_none_e932cc2c30fc13b0\cmd.exe
c:\Windows\System32\cmd.exe
c:\Windows\SysWOW64\cmd.exe
c:\Windows\winsxs\wow64_microsoft-windows-commandprompt_31bf3856ad364e35_6.1.7601.17514_none_f387767e655cd5ab\cmd.exe
c:\Windows\winsxs\amd64_microsoft-windows-commandprompt_31bf3856ad364e35_6.1.7600.16385_none_e701b864340d9016\cmd.exe
c:\Windows\winsxs\wow64_microsoft-windows-commandprompt_31bf3856ad364e35_6.1.7600.16385_none_f15662b6686e5211\cmd.exe
который из них ?
Цитата:
Цитата:в 64 битах переменная %ProgramFiles% по какой то причине разворачивается в не свойственный путь для этой системы в
Так разворачивается, когда работает в 32битных приложениях, т.е. получается, что твой батник запускается в 32битном cmd.exe.
хм.. а как же тогда вызвать 64 бит cmd и где оно находится
c:\Windows\winsxs\amd64_microsoft-windows-commandprompt_31bf3856ad364e35_6.1.7601.17514_none_e932cc2c30fc13b0\cmd.exe
c:\Windows\System32\cmd.exe
c:\Windows\SysWOW64\cmd.exe
c:\Windows\winsxs\wow64_microsoft-windows-commandprompt_31bf3856ad364e35_6.1.7601.17514_none_f387767e655cd5ab\cmd.exe
c:\Windows\winsxs\amd64_microsoft-windows-commandprompt_31bf3856ad364e35_6.1.7600.16385_none_e701b864340d9016\cmd.exe
c:\Windows\winsxs\wow64_microsoft-windows-commandprompt_31bf3856ad364e35_6.1.7600.16385_none_f15662b6686e5211\cmd.exe
который из них ?
Mr_Hat
Зачем тебе искать 64-битную cmd.exe? Просто проверь переменные и по результатам выполняй действия:
Код:
if defined programfiles(x86) (set apps=%programfiles(x86)%) else (set apps=%programfiles%)
Зачем тебе искать 64-битную cmd.exe? Просто проверь переменные и по результатам выполняй действия:
Код:
if defined programfiles(x86) (set apps=%programfiles(x86)%) else (set apps=%programfiles%)
Здравствуйте.
Скажите пожалуйста какой командой можно сменить фоновый рисунок рабочего стола?
Скажите пожалуйста какой командой можно сменить фоновый рисунок рабочего стола?
praidik
для 7-ки, с помощью nircmd
Код:
@echo off
copy /y "d:\Pictures\034.jpg" "%appdata%\Microsoft\Windows\Themes\TranscodedWallpaper.jpg
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
nircmdc win redraw desktop
для 7-ки, с помощью nircmd
Код:
@echo off
copy /y "d:\Pictures\034.jpg" "%appdata%\Microsoft\Windows\Themes\TranscodedWallpaper.jpg
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
nircmdc win redraw desktop
Здравствуйте, уважаемые форумчане
Сразу извиняюсь если что то спрашиваю невероятно тривиальное, но мог бы кто нибудь подсказать как результат какой нибудь команды записать в переменную окружения? Скажем есть команда hostname, которая выводит имя компьютера и переменная name. Возможно ли значение результата команды записать в эту самую переменную?
Сразу извиняюсь если что то спрашиваю невероятно тривиальное, но мог бы кто нибудь подсказать как результат какой нибудь команды записать в переменную окружения? Скажем есть команда hostname, которая выводит имя компьютера и переменная name. Возможно ли значение результата команды записать в эту самую переменную?
ArchiDevil
Код:
@echo off
for /f %%i in (' hostname ') do set "hostname=%%i"
echo %hostname%
Код:
@echo off
for /f %%i in (' hostname ') do set "hostname=%%i"
echo %hostname%
01MDM
Спасибо огромное за разъяснение.
А можно как то вырезать из этой переменной только 6 последних символов? Пробовал что то вроде set hostname=%hostname:~0,-6%, но явно что то путаю...
Спасибо огромное за разъяснение.
А можно как то вырезать из этой переменной только 6 последних символов? Пробовал что то вроде set hostname=%hostname:~0,-6%, но явно что то путаю...
ArchiDevil
set hostname=%hostname:~-6%
set hostname=%hostname:~-6%
01MDM
Спасибо ещё раз) Бродил где то рядом)
Спасибо ещё раз) Бродил где то рядом)
01MDM
Спасибо, но не работает, путь поменял и сконвертил... четно...
Спасибо, но не работает, путь поменял и сконвертил... четно...
praidik
Проверил на ХП, работает, вот базовый вариант без конвертации в bmp:
Код:
@echo off
copy /y "d:\pictures\picture.bmp" "%userprofile%\local settings\application data\microsoft\wallpaper1.bmp"
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
c:\bin\nirsoft\nircmd\nircmdc win redraw desktop
Проверил на ХП, работает, вот базовый вариант без конвертации в bmp:
Код:
@echo off
copy /y "d:\pictures\picture.bmp" "%userprofile%\local settings\application data\microsoft\wallpaper1.bmp"
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
c:\bin\nirsoft\nircmd\nircmdc win redraw desktop
Всех приветствую!
Помогите доработать [more=код]
@echo off
title Useful Commands
echo 1.ping
echo 2.tracert
echo 3.hostname
echo 4.ipconfig
set /p num="Порядковый номер команды: "
cls
if "%num%" equ "1" goto:ping
if "%num%" equ "2" goto:tracert
if "%num%" equ "3" goto:hostname
if "%num%" equ "4" goto:ipconfig
:ping
title Ping
set /p adr="Введите IP адрес или имя хоста :"
ping %adr%
goto:end
:tracert
title Tracert
set /p adr="Введите IP адрес или имя хоста :"
tracert %adr%
goto:end
:hostname
title Hostname
hostname
goto:end
:ipconfig
title Ipconfig
ipconfig
:end
pause
[/more] таким образом, чтобы при вводе порядкового номера команды окрывалась новое окно(новая командная оболчка) либо с выводом запрошенной информации или с предложением ввести имя хоста. А первое окно чтобы не закрывалось, предаставляя возможность ввести номер другой команды.
С уважением!
Помогите доработать [more=код]
@echo off
title Useful Commands
echo 1.ping
echo 2.tracert
echo 3.hostname
echo 4.ipconfig
set /p num="Порядковый номер команды: "
cls
if "%num%" equ "1" goto:ping
if "%num%" equ "2" goto:tracert
if "%num%" equ "3" goto:hostname
if "%num%" equ "4" goto:ipconfig
:ping
title Ping
set /p adr="Введите IP адрес или имя хоста :"
ping %adr%
goto:end
:tracert
title Tracert
set /p adr="Введите IP адрес или имя хоста :"
tracert %adr%
goto:end
:hostname
title Hostname
hostname
goto:end
:ipconfig
title Ipconfig
ipconfig
:end
pause
[/more] таким образом, чтобы при вводе порядкового номера команды окрывалась новое окно(новая командная оболчка) либо с выводом запрошенной информации или с предложением ввести имя хоста. А первое окно чтобы не закрывалось, предаставляя возможность ввести номер другой команды.
С уважением!
FantoMax2
[more=Код]
Код: @echo off
if "%~1" equ "ping" goto:ping
if "%~1" equ "tracert" goto:tracert
if "%~1" equ "hostname" goto:hostname
if "%~1" equ "ipconfig" goto:ipconfig
title Useful Commands
:loop
echo 1.ping
echo 2.tracert
echo 3.hostname
echo 4.ipconfig
echo 5.exit
set /p num="Порядковый номер команды: "
cls
if "%num%" equ "1" start "ping" cmd.exe /c "%~0" ping
if "%num%" equ "2" start "tracert" cmd.exe /c "%~0" tracert
if "%num%" equ "3" start "hostname" cmd.exe /c "%~0" hostname
if "%num%" equ "4" start "ipconfig" cmd.exe /c "%~0" ipconfig
if "%num%" equ "5" goto:eof
goto:loop
:ping
title Ping
set /p adr="Введите IP адрес или имя хоста :"
ping %adr%
goto:end
:tracert
title Tracert
set /p adr="Введите IP адрес или имя хоста :"
tracert %adr%
goto:end
:hostname
title Hostname
hostname
goto:end
:ipconfig
title Ipconfig
ipconfig
:end
pause
[more=Код]
Код: @echo off
if "%~1" equ "ping" goto:ping
if "%~1" equ "tracert" goto:tracert
if "%~1" equ "hostname" goto:hostname
if "%~1" equ "ipconfig" goto:ipconfig
title Useful Commands
:loop
echo 1.ping
echo 2.tracert
echo 3.hostname
echo 4.ipconfig
echo 5.exit
set /p num="Порядковый номер команды: "
cls
if "%num%" equ "1" start "ping" cmd.exe /c "%~0" ping
if "%num%" equ "2" start "tracert" cmd.exe /c "%~0" tracert
if "%num%" equ "3" start "hostname" cmd.exe /c "%~0" hostname
if "%num%" equ "4" start "ipconfig" cmd.exe /c "%~0" ipconfig
if "%num%" equ "5" goto:eof
goto:loop
:ping
title Ping
set /p adr="Введите IP адрес или имя хоста :"
ping %adr%
goto:end
:tracert
title Tracert
set /p adr="Введите IP адрес или имя хоста :"
tracert %adr%
goto:end
:hostname
title Hostname
hostname
goto:end
:ipconfig
title Ipconfig
ipconfig
:end
pause
Цитата:
res2001
Огромное человеческое спасибо!
Всем привет!
Возникла непонятная трабла в бат-файле. До этого работал без проблем, переставил винду и тут началось.
Фрагмент бат-файла:
Код:
@ECHO OFF
rem Новый файл просто добавляется в конце списка
rem 59 - строка с которой начинается список файлов
setlocal
Set DirArchFiles=E:\NAME_DIR\SPYGLASS
Set NameArchFile=archive.rar
MORE /e +59 < %~nx0 > lst.lst
.....
.....
EXIT /b
%DirArchFiles%\AD1\AD1.txt
%DirArchFiles%\AD2\AD2.txt
%DirArchFiles%\AD3\AD3.txt
%DirArchFiles%\AD4\AD4.txt
%DirArchFiles%\AD5\AD5.txt
Возникла непонятная трабла в бат-файле. До этого работал без проблем, переставил винду и тут началось.
Фрагмент бат-файла:
Код:
@ECHO OFF
rem Новый файл просто добавляется в конце списка
rem 59 - строка с которой начинается список файлов
setlocal
Set DirArchFiles=E:\NAME_DIR\SPYGLASS
Set NameArchFile=archive.rar
MORE /e +59 < %~nx0 > lst.lst
.....
.....
EXIT /b
%DirArchFiles%\AD1\AD1.txt
%DirArchFiles%\AD2\AD2.txt
%DirArchFiles%\AD3\AD3.txt
%DirArchFiles%\AD4\AD4.txt
%DirArchFiles%\AD5\AD5.txt
AnGo
Цитата:
Да и не должно быть замены в приведенном участке кода. Возможно замена происходила где-то ниже по коду.
Давай уж выкладывай оставшийся кусок.
Цитата:
т.е замены %DirArchFiles% не происходит.
Да и не должно быть замены в приведенном участке кода. Возможно замена происходила где-то ниже по коду.
Давай уж выкладывай оставшийся кусок.
имеются строки вида(это кусок одной строчки):
<a href="http://www.imagebam.com/image/35339035399557/" class="postLink"><var class="postImg" title="http://thumbnails9.imagebam.com/3539/35339035399557.gif"></var></a> <a href="http://www.imagebam.com/image/e79c3535399559/" class="postLink"><var class="postImg" title="http://thumbnails35.imagebam.com/3539/e79c3535399559.gif"></var></a> <a href="http://www.imagebam.com/image/be955735399570/" class="postLink"><var class="postImg" title="http://thumbnails35.imagebam.com/3539/be955735399570.gif"></var...
нужно sedом выцепить:
http://www.imagebam.com/image/35339035399557/
http://www.imagebam.com/image/e79c3535399559/
http://www.imagebam.com/image/be955735399570/
...
...
<a href="http://www.imagebam.com/image/35339035399557/" class="postLink"><var class="postImg" title="http://thumbnails9.imagebam.com/3539/35339035399557.gif"></var></a> <a href="http://www.imagebam.com/image/e79c3535399559/" class="postLink"><var class="postImg" title="http://thumbnails35.imagebam.com/3539/e79c3535399559.gif"></var></a> <a href="http://www.imagebam.com/image/be955735399570/" class="postLink"><var class="postImg" title="http://thumbnails35.imagebam.com/3539/be955735399570.gif"></var...
нужно sedом выцепить:
http://www.imagebam.com/image/35339035399557/
http://www.imagebam.com/image/e79c3535399559/
http://www.imagebam.com/image/be955735399570/
...
...
Добрый день!
Код: @echo off
setlocal enabledelayedexpansion
set start=%time%
pause
set finish=%time%
call :savelog %start% %finish%
echo !it!
pause
:savelog
set /a "it=%2-%1"
exit /b
Код: @echo off
setlocal enabledelayedexpansion
set start=%time%
pause
set finish=%time%
call :savelog %start% %finish%
echo !it!
pause
:savelog
set /a "it=%2-%1"
exit /b
lorents
Цитата:
Ошибся ты в том, что cmd не умеет делать операций со временем, т.е. он не может вычислить:
15:48:30 - 14:30:00
Цитата:
Подскажите, пожалуйста, где я ошибся?
Ошибся ты в том, что cmd не умеет делать операций со временем, т.е. он не может вычислить:
15:48:30 - 14:30:00
res2001
Это много объясняет, а как можно решить тогда мою проблему?
Это много объясняет, а как можно решить тогда мою проблему?
lorents
Проще всего сделать скрипт на VBS/JS, вычисляющий разницу во времени и выводящий ее в stdin и из батника вызывать его.
А можно реализовать и батником, но тогда надо отдельно вычислять разницу часов, минут, секунд. Это может быть довольно геморройно.
Проще всего сделать скрипт на VBS/JS, вычисляющий разницу во времени и выводящий ее в stdin и из батника вызывать его.
А можно реализовать и батником, но тогда надо отдельно вычислять разницу часов, минут, секунд. Это может быть довольно геморройно.
Цитата:
а как можно решить тогда мою проблему?
пересчитай время в секунды сам перед вычитанием.
Код:
:savelog
set "Time1=%~1"
set "Time2=%~2"
set /a time#start = ((0%_time1:~0,1%) * 600 + (%_time1:~1,1%) * 60 + 1%_time1:~3,2% -100 )*60 + 1%_time1:~6,2% - 100
Set /a it = ((0%_time2:~0,1%) * 600 + (%_time2:~1,1%) * 60 + 1%_time2:~3,2% -100 )*60 + 1%_time2:~6,2% - 100 - %time#start%
exit /b
Хотя почему геморойно, можно перевести оба времени в секунды, вычислить разницу и перевести обратно. Это реализовать не сложно.
Цитата:
Да и не должно быть замены в приведенном участке кода. Возможно замена происходила где-то ниже по коду.
Давай уж выкладывай оставшийся кусок.
Думаю ты ошибаешься. Замена происходит в строке
MORE /e +59 < %~nx0 > lst.lst
Здесь создается файл-список.
Далее идет только обработка ошибок, последовательность операторов типа:
IF ERRORLEVEL=13 GOTO :ERROR13
.....
....
:ERROR13
ECHO ERROR: Error opening temporary file in temp directory!
GOTO :EXIT
....
....
:NOERROR
:: Any additional batch processing goes here
GOTO :EXITNOPAUSE
:EXIT
PAUSE
:EXITNOPAUSE
:: End of batch file here
EXIT /b
Далее по тексту предыдущего поста.
Цитата:
Думаю ты ошибаешься. Замена происходит в строкев этом куске кода - никакого изменения содержимого строк не происходит, и происходить не должно.
MORE /e +59 < %~nx0 > lst.ls
AnGo
Замена должна происходить скорее всего там, где ты хочешь использовать файл lst.lst или тебе надо перейти от использования more на for /f ...(%~nx0) и тут уже делать двойное разименование через call. Что-то типа этого
for /f "skip=59 tokens=*" %%a in (%~nx0) do call echo.%%a >>lst.lst
Замена должна происходить скорее всего там, где ты хочешь использовать файл lst.lst или тебе надо перейти от использования more на for /f ...(%~nx0) и тут уже делать двойное разименование через call. Что-то типа этого
for /f "skip=59 tokens=*" %%a in (%~nx0) do call echo.%%a >>lst.lst
wolf0425
Выдает:
Цитата:
Не могу понять, что ему не нравится
Не уже ли нет программы, которая могла бы вычислить время. К тому же там еще дату надо вычислять, только ща обратил на это внимание.
Выдает:
Цитата:
Непарные скобки.
Не могу понять, что ему не нравится
Не уже ли нет программы, которая могла бы вычислить время. К тому же там еще дату надо вычислять, только ща обратил на это внимание.
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
Предыдущая тема: зависает установка Windows XP: 39 минут
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.