@echo off title %~nx0 REM ******************************************************************** REM * ファイルのバージョンチェック REM http://www10.plala.or.jp/palm84/commandline.html REM http://www10.plala.or.jp/palm84/archives/commandline/backup/FileVersion_sendto.bat.txt REM https://eu7w9wsmf6a74xyjdfzl3q-on.drv.tw/archives/commandline/backup/FileVersion_sendto.bat.txt REM ******************************************************************** if "%~1%"=="" GOTO NO_PARAM for %%x in ("%~a1") do set check_dir=%%~x if /i "%check_dir:~0,1%"=="d" GOTO FILECYAU pushd %~dp0 REM ##################################### REM ### ログファイル REM ##################################### :TEMP_LOG REM ## Temp set temp_dir=%temp%\%random% mkdir %temp_dir% REM ## log REM set now=%date%_%time% REM set now=%now: =0% REM set now=%now:~-20,2%%now:~-17,2%%now:~-14,5%%now:~-8,2%%now:~-5,2% set now=%date:/=%_%time: =0% set now=%now: =% set now=%now:.=% set now=%now::=% REM ## バッチファイルのディレクトリに作成 set "log=%cd%\%~nx1_%now%_Filever.txt" REM ##################################### REM ### target表示 REM ##################################### cls echo: echo: echo ===== :SHOWFILE for %%x in (%*) do ( echo * 対象ファイル名 %%~x ) echo: echo * ログファイル名 %log% echo ===== REM ##################################### REM ### warning REM ##################################### :WARNING REM echo: REM echo ************************************************************** REM echo ! cscript.exe 実行時に、 REM echo ! ウイルス対策ソフトが!何度も!警告を出すかもしれません REM echo ! 面倒ですけど一時的に許可して下さい ! REM echo ************************************************************** REM echo: REM echo *** 何かキーを押すと続行します *** REM pause >nul echo: echo: echo *** .....開始しますた..... *** echo: >>"%log%" echo ========================================================= >>"%log%" echo 調査日時 === %date% %time% === REM ##################################### REM ### VBScript REM ##################################### set vbscript=%temp_dir%\script.vbs > "%vbscript%" >>"%vbscript%" echo Option Explicit >>"%vbscript%" echo Dim objShellApp >>"%vbscript%" echo Set objShellApp = CreateObject ("Shell.Application") >>"%vbscript%" echo: >>"%vbscript%" echo If WScript.Arguments.Count = 0 Then >>"%vbscript%" echo WScript.Echo "コマンドライン引数が指定されていません" >>"%vbscript%" echo Else >>"%vbscript%" echo MyFileVer >>"%vbscript%" echo End If >>"%vbscript%" echo Set objShellApp = Nothing >>"%vbscript%" echo: >>"%vbscript%" echo Sub MyFileVer >>"%vbscript%" echo Dim objFSO, objFile, objFolder, objFolderItems, objItem >>"%vbscript%" echo Dim strPath, strFileName, strFolder, strName, strName2, strName3, strName4, strName5 >>"%vbscript%" echo Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") >>"%vbscript%" echo For Each strPath In WScript.Arguments >>"%vbscript%" echo If objFSO.FileExists(strPath) Then >>"%vbscript%" echo Set objFile = objFSO.GetFile(strPath) >>"%vbscript%" echo strFileName = objFSO.GetFileName(strPath) >>"%vbscript%" echo strFolder = objFile.ParentFolder >>"%vbscript%" echo Set objFolder = objShellApp.Namespace (strFolder) >>"%vbscript%" echo Set objFolderItems = objFolder.Items >>"%vbscript%" echo Set objItem = objFolderItems.Item(strFileName) >>"%vbscript%" echo Wscript.Echo "=========================================================" >>"%vbscript%" echo Wscript.Echo strPath >>"%vbscript%" echo Wscript.Echo "=========================================================" >>"%vbscript%" echo Dim n >>"%vbscript%" echo For n=0 to 300 >>"%vbscript%" echo strName = objFolder.GetDetailsOf(Nothing, n) >>"%vbscript%" echo If strName = "ファイル バージョン" Then >>"%vbscript%" echo Wscript.Echo "File Version : ", objFolder.GetDetailsOf(objItem, n) >>"%vbscript%" echo End If >>"%vbscript%" echo Next >>"%vbscript%" echo Dim m >>"%vbscript%" echo For m=0 to 300 >>"%vbscript%" echo strName2 = objFolder.GetDetailsOf(Nothing, m) >>"%vbscript%" echo If strName2 = "製品バージョン" Then >>"%vbscript%" echo Wscript.Echo "Product Version : ", objFolder.GetDetailsOf(objItem, m) >>"%vbscript%" echo End If >>"%vbscript%" echo Next >>"%vbscript%" echo Dim l >>"%vbscript%" echo For l=0 to 300 >>"%vbscript%" echo strName3 = objFolder.GetDetailsOf(Nothing, l) >>"%vbscript%" echo If strName3 = "説明" Then >>"%vbscript%" echo Wscript.Echo "説明 : ", objFolder.GetDetailsOf(objItem, l) >>"%vbscript%" echo End If >>"%vbscript%" echo Next >>"%vbscript%" echo Dim k >>"%vbscript%" echo For k=0 to 300 >>"%vbscript%" echo strName4 = objFolder.GetDetailsOf(Nothing, k) >>"%vbscript%" echo If strName4 = "ファイルの説明" Then >>"%vbscript%" echo Wscript.Echo "ファイルの説明 : ", objFolder.GetDetailsOf(objItem, k) >>"%vbscript%" echo End If >>"%vbscript%" echo Next >>"%vbscript%" echo Wscript.Echo "最終更新日時 : ", objFolder.GetDetailsOf(objItem, 3) >>"%vbscript%" echo Wscript.Echo "作成日時 : ", objFolder.GetDetailsOf(objItem, 4) >>"%vbscript%" echo Wscript.Echo "サイズ : ", objFolder.GetDetailsOf(objItem, 1) >>"%vbscript%" echo End If >>"%vbscript%" echo Next >>"%vbscript%" echo Wscript.Echo "=========================================================" >>"%vbscript%" echo Set objFSO = Nothing >>"%vbscript%" echo End Sub REM ##################################### REM ### 引数で指定したファイルをチェック REM ##################################### :PARAM if "%~1"=="" GOTO SHOW_LOG set "filename=%~1" if exist "%filename%" ( echo * %filename:(x86)=^(x86^)% をチェック... echo: >>"%log%" cscript //nologo "%vbscript%" "%filename%" >>"%log%" echo: ) shift GOTO PARAM REM ##################################### REM ### SHOW_LOG REM ##################################### :SHOW_LOG start "" "%log%" GOTO END REM ##################################### REM ### NO_PARAM REM ##################################### :NO_PARAM echo: echo ============================================================== echo !引数(ファイル指定)がないですYO! echo ============================================================== echo: echo *** 何かキーを押すと閉じます *** echo: pause >nul GOTO :EOF REM ##################################### REM ### FILECYAU REM ##################################### :FILECYAU echo: echo ============================================================== echo ! %~1 echo: echo ! ... はディレクトリどすえ echo ============================================================== echo: echo *** 何かキーを押すと閉じます *** echo: pause >nul GOTO :EOF REM ##################################### REM ### END REM ##################################### :END rd /s /q "%temp_dir%"