단일 기계에서 DOS 프로세스의 고유 식별자


1

나는 다른 사용자와 함께 Win 10 머신을 사용하는데, 이것들은 모두 동일한 박쥐 파일을 사용할 수 있습니다.

박쥐 스크립트에서 나는 그 머신에 현재있는 프로세스의 식별자를 구성하는 고유 한 이름을 가진 임시 파일이 필요하다. 따라서 동시에 여러 프로세스가있을 수 있습니다.

파일 이름에 C : \ Windows \ Temp \ ???. txt를 사용하고 싶습니다.

질문은 무엇입니까 ??? 있어야합니다.


2
자신의 파일을 절대로 C : \ Windows에 저장하면 안됩니다. 왜이 파일들을 % USERPROFILE %에 넣지 않습니까?
Jamie Hanrahan

또는 모든 사람이 액세스 할 수있는 완전히 다른 폴더. "현재 진행중인 프로세스"는 무엇을 의미합니까? 원하는 고유 한 식별자로 파일의 이름을 지정할 수없는 이유는 무엇입니까?
Aulis Ronkainen

현재 사용중인 명령은 64 비트 비트 맵 이미지 편집기 Irfanview 인 i_view64.exe입니다. 나는 다음과 같이 사용한다 : i_view64.exe inputfile.jpg /info=???.txt. ??? 동일한 컴퓨터에서 다른 사용자를 대상으로해야하며 동일한 컴퓨터에서 동일한 사용자가 여러 명령을 처리해야합니다. * NIX / POSIX에서 이것은 $$입니다. DOS에서 무엇인지 모르겠습니다.
Francky Leyn

멀티 태스킹 / 멀티 유저 PC의 파티션이 SSD 드라이브에 있고이 PC의 다른 HDD보다 빠르기 때문에`C :`를 사용하고 싶습니다. * NIX에는 빠른 드라이브를위한 / tmp / $$가 있습니다. 그 PC 기계에서 그것은 가장 빠른 SSD입니다. i_view64.exe 명령은 예를 들어 380 .png 파일에서 FOR 명령을 포함하는 bat 스크립트의 일부를 만듭니다. 이것은 쉽게 10 분을 Thief. 그 PC에 가상 * NIX가 있지만 사용하고 싶지 않습니다. Win 10 PC는 주로 DOS 기반이므로 DOS를 사용하고 싶습니다.
Francky Leyn

그래서 C:\Windows\Temp\IrfanView\%USERPROFILE%\info_???.txt 첫 번째 시도가 될 것입니다. 그 경우에 사람은 단지 고려해야 만합니까 ??? 해당 컴퓨터에서 동시에 같은 사용자가 시작한 여러 프로세스에 대해
Francky Leyn

답변:


0

대답

cmd.exe의 PID를 사용하려면 다음을 수행하십시오.

title=uniqueTitle
for /f "tokens=2 USEBACKQ" %f IN (`tasklist /NH /FI "WINDOWTITLE eq uniqueTitle*"`) Do set ourPID=%f
i_view64.exe inputfile.jpg /info=%temp%\%ourPID%.txt

내가 그 질문을 이해하지 못해서 놀랐다.

"현재 처리중인 프로세스"를 실행하는 배치 파일의 컨텍스트에서는 명령 인터프리터 (conhost.exe 또는 cmd.exe)가 해당됩니다. i_view64.exe의 프로세스 ID를 얻으려면 먼저 실행 한 다음 프로세스 ID를 얻어야합니다 (이는 간단하지 않습니다). 귀하의 경우에는 프로세스 ID가 작성되기 전에 프로세스 ID를 묻는 중입니다. 프로세스가 시작되지 않았으므로 프로세스에 명령 줄 인수를 제공 할 때의 상태를 예측할 수있는 방법이 없습니다.

안전하고 신뢰할 수있는 위치에 고유 한 임시 파일 이름 만 원할 경우이 질문을 확인해야합니다.

https://stackoverflow.com/questions/27802376/create-unique-file-name-windows-batch

제안 된 솔루션이 많이 있습니다.

일반적으로 % TEMP %를 사용하여 시스템의 임시 위치를 가져옵니다. 그런 다음 파일 이름을 생성합니다.

이 같은 것이 당신에게 도움이 될 것입니다.

%temp%\%username%-%date%-%random%.txt

필요에 따라 조정하십시오. 각 변수는 파일의 전체 경로를 만들기 위해 확장됩니다.


나는 박쥐 파일에서 그것을 사용한다. get_resolution.bat 포함하는:
Francky Leyn

i_view64.exe jpg_inputfile.jpg /info=textfile.txt. 그래서, 나는 프로세스 ID가 필요 없다. i_view64.exe. 호출 스크립트의 프로세스 ID가 필요합니다. get_resolution.bat.
Francky Leyn

나는 사용해야 만 하는가? %USERNAME%? " echo %TEMP% " 동일하다 C:\Users\FRANCK~1\AppData\Local\Temp. 그게 " ~ " 어쨌든? " echo %USERNAME% "전달하다" Francky Leyn "
Francky Leyn

CALL i_view64.exe "input.jpg" /info=%TEMP%\IrfanView\info_%DATE%-%TIME%-%RANDOM%.txt" 배달하다 CALL i_view64.exe "input.jpg" /info="C:\Users\FRANCK~1\AppData\Local\Temp\IrfanView\info_Fri 11/16/2018- 9:44:27.14-13375.txt". 왜 공간이 %DATE%-?
Francky Leyn

K : \ test & gt; ECHO % TIME % 12 : 38 : 21.00
Francky Leyn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.