업무 중에 사용되는 파일을 간단하게 백업하고 싶습니다.
회사에서 겪는 어려움
업무상 자료의 백업을 자주 남긴다.주요 이유는 파일의 버전 관리이다.
이 방법은 최신 버전을 수정하기 전에 자원 관리자에서 파일을 복사한 후 파일 이름에 날짜와 시간을 입력해서 각 파일의 업데이트 날짜와 시간을 알 수 있도록 하는 것이다.이런 느낌이야.
이 세상에서 박스처럼 파일을 쉽게 관리할 수 있는 버전의 서비스가 많은데 많은 사람들이 이용하고 있다고 생각합니다.다만, 이 방법도 좋은 점이 있다.
공짜죠.
[Ctrl]+[C]→[Ctrl]+[V]또 타자 오류로 날짜 오류가 발생하면 파일 이름으로 배열할 때 업데이트 순서가 붕괴되는 점도 곤란하다.
순식간에 백업할 수 있는 제작 도구
그래서 나는 도구를 만들어 즐거움을 누리기로 했다.
'기획서 -latest.docx' 와 같이 파일 확장자는 '-latest' 라는 파일이어야 합니다.
자원 관리자에서 이 파일을 도구에 끌어다 놓으면 자동으로 파일 이름을 백업하고 업데이트합니다.
배치 파일backup.bat은 대상 파일을 배치 파일로 드래그하기만 하면 되는 도구입니다.
배치 파일에서 Java를 실행하는 프로그램입니다.
다음 그림은 실행 결과입니다.
클릭하여 백업을 수행할 수 있어 편리합니다.
소스 코드
소스 코드는 이런 느낌입니다.Java 및 배치 파일의 결합 작업
Class 파일과 배치 파일을 같은 폴더에 배치하려면 Java 프로그램을 컴파일하십시오.
실행할 때 백업할 파일을 자원 관리자에서 일괄 처리 파일로 드래그하십시오. 위 그림과 같습니다.대상 파일과 같은 폴더에 백업을 만듭니다.
그리고 자신의 데스크톱에 도구(일괄 처리 파일)의 단축키를 만들고 그 단축키를 끌어다 놓으세요.
CopyAndBackupFile.javaimport java.net.*;
import java.nio.file.*;
import java.text.*;
import java.util.*;
public class CopyAndBackupFile {
private static final String DEFAULT_PLACE_HOLDER = "latest";
private static final SimpleDateFormat FORMAT_PREFIX = new SimpleDateFormat("YYYYMMdd");
private static final SimpleDateFormat FORMAT_SUFFIX = new SimpleDateFormat("HHmm");
public static void main(String[] args) throws Exception {
int argc = 0;
String placeHolder;
if (args[argc].equals("-p")) {
placeHolder = args[++argc];
++argc;
} else {
placeHolder = DEFAULT_PLACE_HOLDER;
}
assert placeHolder != null : "Placeholder is null";
Path[] paths = new Path[args.length - argc];
for (int i = 0; i < paths.length; i++, argc++) {
paths[i] = Paths.get(args[argc]);
}
rename_loop:
for (int i = 0; i < paths.length; i++) {
Path pathOrg = Paths.get(paths[i].toString());
Path dir = pathOrg.getParent();
Path file = pathOrg.getFileName();
String sFile = file.toString();
int phStart = sFile.lastIndexOf(placeHolder);
if (phStart < 0) {
System.err.printf("ERROR: %s does not include \"%s\"%n", sFile, placeHolder);
continue rename_loop;
}
int phEnd = phStart + placeHolder.length();
long lastModified = pathOrg.toFile().lastModified();
Date date = new Date(lastModified);
String backupDate = FORMAT_PREFIX.format(date)
.concat("T")
.concat(FORMAT_SUFFIX.format(date));
String sFileNew = sFile.substring(0, phStart)
.concat(backupDate)
.concat(sFile.substring(phEnd));
Path pathNew = Paths.get(dir.toString(), sFileNew);
System.out.printf("%s -> %s%n", pathOrg, pathNew);
Files.copy(pathOrg, pathNew);
}
}
}
backup.bat@echo off
setlocal
rem
rem The top directory of the tool
rem
set __tools_dir=%~d0%~p0
set __last_char=%__tools_dir:~-1%
if "%__last_char%"=="\" set __tools_dir=%__tools_dir:~0,-1%
rem
rem Environment variables
rem
set __java_bin_dir=C:\ProgramData\Oracle\Java\javapath
set __classpath=%__tools_dir%
if "%JAVA_HOME%"=="" (
echo WARNING: JAVA_HOME is empty. Using %__java_bin_dir%
) else (
set __java_bin_dir=%JAVA_HOME:"=%\bin
)
if not exist "%__java_bin_dir%\java.exe" (
echo ERROR: %__java_bin_dir%\java.exe does not exist
echo ERROR: set JAVA_HOME to the top directory of Java SE 7 or later
goto :EOF
)
set __java_options=
rem
rem Run
rem
@echo on
"%__java_bin_dir%\java.exe" %__java_options% -classpath "%__classpath%" CopyAndBackupFile %*
@echo off
@endlocal
기사 수정(2019년 7월 14일)
"Box"는 "Microsoft의 서비스"라는 잘못된 기술이 있기 때문에 수정했습니다.사과하고 정정할게요.
Reference
이 문제에 관하여(업무 중에 사용되는 파일을 간단하게 백업하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hachan/items/abd3a8579ff0a9a0d939
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
소스 코드는 이런 느낌입니다.Java 및 배치 파일의 결합 작업
Class 파일과 배치 파일을 같은 폴더에 배치하려면 Java 프로그램을 컴파일하십시오.
실행할 때 백업할 파일을 자원 관리자에서 일괄 처리 파일로 드래그하십시오. 위 그림과 같습니다.대상 파일과 같은 폴더에 백업을 만듭니다.
그리고 자신의 데스크톱에 도구(일괄 처리 파일)의 단축키를 만들고 그 단축키를 끌어다 놓으세요.
CopyAndBackupFile.java
import java.net.*;
import java.nio.file.*;
import java.text.*;
import java.util.*;
public class CopyAndBackupFile {
private static final String DEFAULT_PLACE_HOLDER = "latest";
private static final SimpleDateFormat FORMAT_PREFIX = new SimpleDateFormat("YYYYMMdd");
private static final SimpleDateFormat FORMAT_SUFFIX = new SimpleDateFormat("HHmm");
public static void main(String[] args) throws Exception {
int argc = 0;
String placeHolder;
if (args[argc].equals("-p")) {
placeHolder = args[++argc];
++argc;
} else {
placeHolder = DEFAULT_PLACE_HOLDER;
}
assert placeHolder != null : "Placeholder is null";
Path[] paths = new Path[args.length - argc];
for (int i = 0; i < paths.length; i++, argc++) {
paths[i] = Paths.get(args[argc]);
}
rename_loop:
for (int i = 0; i < paths.length; i++) {
Path pathOrg = Paths.get(paths[i].toString());
Path dir = pathOrg.getParent();
Path file = pathOrg.getFileName();
String sFile = file.toString();
int phStart = sFile.lastIndexOf(placeHolder);
if (phStart < 0) {
System.err.printf("ERROR: %s does not include \"%s\"%n", sFile, placeHolder);
continue rename_loop;
}
int phEnd = phStart + placeHolder.length();
long lastModified = pathOrg.toFile().lastModified();
Date date = new Date(lastModified);
String backupDate = FORMAT_PREFIX.format(date)
.concat("T")
.concat(FORMAT_SUFFIX.format(date));
String sFileNew = sFile.substring(0, phStart)
.concat(backupDate)
.concat(sFile.substring(phEnd));
Path pathNew = Paths.get(dir.toString(), sFileNew);
System.out.printf("%s -> %s%n", pathOrg, pathNew);
Files.copy(pathOrg, pathNew);
}
}
}
backup.bat@echo off
setlocal
rem
rem The top directory of the tool
rem
set __tools_dir=%~d0%~p0
set __last_char=%__tools_dir:~-1%
if "%__last_char%"=="\" set __tools_dir=%__tools_dir:~0,-1%
rem
rem Environment variables
rem
set __java_bin_dir=C:\ProgramData\Oracle\Java\javapath
set __classpath=%__tools_dir%
if "%JAVA_HOME%"=="" (
echo WARNING: JAVA_HOME is empty. Using %__java_bin_dir%
) else (
set __java_bin_dir=%JAVA_HOME:"=%\bin
)
if not exist "%__java_bin_dir%\java.exe" (
echo ERROR: %__java_bin_dir%\java.exe does not exist
echo ERROR: set JAVA_HOME to the top directory of Java SE 7 or later
goto :EOF
)
set __java_options=
rem
rem Run
rem
@echo on
"%__java_bin_dir%\java.exe" %__java_options% -classpath "%__classpath%" CopyAndBackupFile %*
@echo off
@endlocal
기사 수정(2019년 7월 14일)
"Box"는 "Microsoft의 서비스"라는 잘못된 기술이 있기 때문에 수정했습니다.사과하고 정정할게요.
Reference
이 문제에 관하여(업무 중에 사용되는 파일을 간단하게 백업하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hachan/items/abd3a8579ff0a9a0d939
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(업무 중에 사용되는 파일을 간단하게 백업하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hachan/items/abd3a8579ff0a9a0d939텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)