처리 할 파일이 x 분 이상인 경우에만 다른 배치 파일을 호출하고 실행하십시오.


0

나는 노력했다. Robocopy 그리고 다른 몇 가지,하지만 그들은 파일의 시간 스탬프 아니라 날짜 만 봐.

복사하기 전에 파일의 타임 스탬프를 비교하는 스크립트를 발견했지만 시간 설정에서 .bat를 호출하지 않았습니다.

실행 파일을 압축하여 사용자 그룹에 메일로 보내야합니다 (15 분 이상인 경우에만). 15 분 이상 경과하면 스크립트가 종료되고 아무 것도 수행하지 않아야합니다.

복사 / RAR / MailTo 기능 배치 파일이 작동하고 있습니다, 그것은 내가 도움이 필요한 시간 비교입니다.

ADDED :

첫 번째 박쥐 파일 :

cd
cd c:\lighthouse\
mv production.exe production_old.exe /Y
cd\
cd c:\production\backup\
cd
xcopy "c:\production\backup\production.exe" "c:\lighthouse\production.exe" /Y
xcopy "c:\production\backup\production.exe" "i:\production.exe" /Y
xcopy "c:\production\backup\production.exe" "c:\RAR_and_Mail\production.exe" /Y
cd

두 번째 박쥐 파일 :이 경우에만 실행해야합니다. 파일 production.exe는 NEWER가 15 분 이상이거나 EXIT입니다.

cd\
cd c:\RAR_and_Mail\
xcopy "c:\RAR_and_Mail\*.rar" "c:\RAR_and_Mail\old\*.rar" /Y
del c:\RAR_and_Mail\*.rar
set MyDate=%date:/=.%.%
set WINRAR=C:\Program Files\WinRAR\rar.exe
set production=c:\RAR_and_mail\
cd /D %production%
"%WINRAR%" a -r -s -m5 /Y /R "%production%\%MyDate%_production.rar" "*.exe"
cd
call c:\batches\SendMail_Executable.bat

세 번째. 박히다 :

echo off
set MyDate=%date:/=.%.%
c:\sendmail\sendEmail -o tls=no -f test@mail.com -t test@mail.com -s 254.20.10.100:25 -u "Latest work Update" -a "c:\RAR_and_Mail\%MyDate%_production.rar" -m "'Save As' the attachement, go to folder where it was saved, and 'extract here', overwriting existing production.exe."

코드를 게시 할 수 있습니까? 어떤 OS를 사용하고 있습니까?
Burgi

안녕, 문법 주셔서 감사합니다. MS Server2003 DOS 첫 번째 배치 파일 : cd cd c : \ TheWork \ move RunThis.exe RunThis_old.exe cd \ cd c : \ work \ backup \ cd xcopy "c : \ work \ backup \ RunThis.exe" "c : \ TheWork * .exe "/ Y xcopy"c : \ work \ backup \ RunThis.exe ""i : * .exe "/ Y cd
Christiaan Em

너는해야한다. 편집하다 귀하의 질문에 코드를 포함하십시오. 또한 Server 2003은 Microsoft에서 더 이상 지원되지 않으며 기업 환경에있는 경우 Server 2012 또는 2016으로의 업그레이드 경로를 고려해야한다고 지적해야합니다.
Burgi

두 번째 배치 파일은 처음 5 분 후에 실행되지만 runthis.exe가 15 분 이상인 경우 아무 것도 수행하지 않습니다. cd \ cd c : \ RAR_and_Mail \ xcopy "c : \ RAR_and_Mail * .rar" "c : \ RAR_and_Mail \ old = .rar "/ Y del c : \ RAR_and_Mail * .rar MyDate = % date : /=.%.% set WINRAR = C : \ Program Files \ WinRAR \ rar.exe set tallship = c : \ RAR_and_mail \ cd / D % tallship % "% WINRAR %"a -r -s -m5 / Y / R "% tallship % \ % MyDate % _runthis.rar" " .exe "rem"% WINRAR % "-r -s -m5 / Y / R"% tallship % \ runthis.rar "" .exe "cd call c : \ batches \ SendMail_Executable.bat
Christiaan Em

배치 파일이 호출 중임 : echo off set MyDate = % date : /=.%.% c : \ sendmail \ sendEmail -o tls = no -f user01@runthis.co.za -t user01@runthis.co.za -s 200.2.1.10:25 -u "최신 토 런스 업데이트"- "c : \ RAR_and_Mail \ % MyDate % _runthis.rar"-m " '저장 첨부 파일로 폴더로 이동하고'여기에서 추출 '을 선택하여 기존 런을 덮어 씁니다. exe. "
Christiaan Em

답변:


0

Powershell에서

$FilePath = 'production.exe'
$lastWrite = (get-item $FilePath).LastWriteTime
$timespan = new-timespan -minutes 15

if (((get-date) - $lastWrite) -lt $timespan) {
    # do this if file newer
} else {
    # do this if file older
}

"Windows PowerShell®은 특히 시스템 관리를 위해 설계된 작업 기반 명령 줄 셸 및 스크립팅 언어로, .NET Framework를 기반으로하여 IT 전문가 및 고급 사용자가 Windows 운영 체제 및 응용 프로그램의 관리를 제어하고 자동화 할 수 있도록 지원합니다. Windows에서 실행됩니다.

cmdlet이라는 Windows PowerShell 명령을 사용하면 명령 줄에서 컴퓨터를 관리 할 수 ​​있습니다. Windows PowerShell 공급자를 사용하면 파일 시스템에 액세스하는 것처럼 레지스트리 및 인증서 저장소와 같은 데이터 저장소에 쉽게 액세스 할 수 있습니다. 또한 Windows PowerShell에는 풍부한 식 구문 분석기와 완전히 개발 된 스크립팅 언어가 있습니다. "

명령 프롬프트 실행 (시작, 실행, cmd, 확인) powershell을 입력하고 return 키를 누릅니다. PowerShell PS 프롬프트가 나타납니다.

Powershell은 MS Server 2003을위한 추가 기능입니다. 이미 서버에 설치되지 않았으며 설치 방법을 알고 싶다면 MS TechNet 블로그가 필요합니다

Windows Server 2003에 PowerShell을 설치하는 방법

확장자가 .ps1 인 PowerShell 스크립트 저장

당신은 배치에서 powershell 스크립트를 호출 할 수 있습니다

PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "& 'powershellscriptname.ps1'"

마찬가지로 Powershell 내에서 일괄 처리를 호출합니다.

start-process C:\batch.bat

.ps1 파일을 통해 이와 같은 것을 호출합니다.

Move-Item c:\lighthouse\production.exe c:\lighthouse\production_old.exe -force -ErrorAction SilentlyContinue
$files = @("c:\lighthouse\production.exe","c:\RAR_and_Mail\production.exe")#,"i:\production.exe")
foreach ($file in $files){
Copy-item c:\production\backup\production.exe $file -force
}
Start-Sleep -s 300
$FilePath = 'c:\lighthouse\production.exe'
$lastWrite = (get-item $FilePath).LastWriteTime
$timespan = new-timespan -minutes 15

if (((get-date) - $lastWrite) -lt $timespan) {
        # do this if file newer
    Copy-item "c:\RAR_and_Mail\*.rar" "c:\RAR_and_Mail\old\*.rar" -force -ErrorAction SilentlyContinue
    Remove-Item "c:\RAR_and_Mail\*.rar"
    $MyDate = get-date
    $Rarfile = "c:\RAR_and_mail\" + "$MyDate" + "_production.rar"
    & "C:\Program Files\WinRAR\rar" a r "$Rarfile" "c:\RAR_and_mail\*.exe"
    start-process c:\batches\SendMail_Executable.bat
    } else {
        # do Nothing, file older.
    }

또는 간단히 추가하고 실행하십시오.

start-process "insert 1st_bat_file path here"
$FilePath = 'production.exe'
$lastWrite = (get-item $FilePath).LastWriteTime
$timespan = new-timespan -minutes 15

if (((get-date) - $lastWrite) -lt $timespan) {
    # do this if file newer
start-process "insert 2nd_bat_file path here"
start-process c:\batches\SendMail_Executable.bat
} else {
    # do this if file older
}

0
  1. 배치 파일 스케줄러가 15 분마다 실행 :

CD cd c : \ work \ workfile.exe workfile_old.exe 이동 CD\ cd c : \ Snowflake \ backup \ CD xcopy "c : \ Snowflake \ backup \ workfile.exe" "c : \ work * .exe"/ Y xcopy "c : \ Snowflake \ backup \ workfile.exe" "i : * .exe"/ Y xcopy "c : \ Snowflake \ backup \ workfile.exe" "c : \ RarAndMail * .exe"/ Y CD PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "& amp; 'c : \ batches \ workfileAutoMail \ Distribute.ps1'"

  1. distribute.ps1 세부 정보

$ FilePath = 'c : \ RarAndMail \ workfile.exe' $ lastWrite = (get-item $ FilePath) .LastWriteTime $ timespan = new-timespan - 분 15

if (((get-date) - $ lastWrite) -lt $ timespan) {     # 파일이 더 새로운 경우에 이것을하십시오 시작 프로세스 c : \ batches \ workfileAutoMail \ Mailworkfile.bat } else {     # 오래된 파일 일 경우 }

  1. Mailworkfile.bat의 세부 사항

CD\ cd c : \ RarAndMail \ xcopy "c : \ RarAndMail * .rar" "c : \ RarAndMail \ old * .rar"/ Y set MyDate = % date : /=.%.% WINRAR = C : \ Program Files \ WinRAR \ rar.exe로 설정하십시오. 눈송이 설정 = c : \ RarAndMail \ cd / D % Snowflake % "% WINRAR %"a -r -s -m5 / Y / R "% Snowflake % \ % MyDate % _workfile.rar" "* .exe" cd c : \ RarAndMail \ set MyDate = % date : /=.%.% c : \ sendmail \ sendEmail -o tls = no -f admin@workfile.com -t users@workfile.com -s 205.20.10.100:25 -u "최신 Snowflake 업데이트"- "c : \ RarAndMail \ % MyDate % _workfile.rar "-m"첨부 파일로 저장, 저장 한 폴더로 이동, '여기에서 추출', 기존 workfile.exe 덮어 쓰기. " CD\ xcopy "c : \ RarAndMail * .rar" "c : \ RarAndMail \ old * .rar"/ Y del c : \ RarAndMail * .rar

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.