根據銀燦IS903的CD-ROM磁碟機代號開啟光碟檔案索引資料庫Index-Your-Files-2024年8月15日

QQ595076941發表於2024-08-16

根據銀燦IS903的CD-ROM磁碟機代號開啟光碟檔案索引資料庫Index-Your-Files-2024年8月15日

===== 段落分隔符 =====

ini-g.exe ( 7z SFX Builder v2.5.0.5 )

;Index Your Files INI
;Font IYF
00000000:Microsoft YaHei UI
;Language File
00000010:English.txt
;Size
00000020:10
;Windows State wsNormal - wsMaximized - wsMinimized
00000030:wsMaximized
;Size Form
00000040:1920
00000050:970
;Location Form
00000060:-12
00000070:-12
;Size Columns Results
00000100:300
00000110:300
00000120:100
00000130:100
00000140:300
00000150:300
;Position Columns Results
00000200:1
00000210:2
00000220:3
00000230:4
00000240:5
00000250:6
;Size Columns Select DB
00000300:140
00000310:240
00000320:190
;Position Columns Select DB
00000400:1
00000410:2
00000420:3
;Size Columns Index DB
00000500:160
00000510:300
00000520:300
00000530:300
00000540:262
00000550:100
00000560:300
00000570:300
00000580:100
00000590:400
;Position Columns Index DB
00000600:2
00000610:3
00000620:4
00000630:5
00000640:6
00000650:7
00000660:8
00000670:9
00000680:10
00000690:20
;Check DbSearch
00000700:
;Check DbIndex
00000800:
;Check TreeDB
00001000:f
;Spliter Position
00001010:672
;Check GridLines
00001020:t
;Original Icon
00001030:f
;DB Path
00001040:C:\APP\IYF\databases-g\
;Show Icons
00001060:t

===== 段落分隔符 =====

ini-h.exe ( 7z SFX Builder v2.5.0.5 )

;Index Your Files INI
;Font IYF
00000000:Microsoft YaHei UI
;Language File
00000010:English.txt
;Size
00000020:10
;Windows State wsNormal - wsMaximized - wsMinimized
00000030:wsMaximized
;Size Form
00000040:1920
00000050:970
;Location Form
00000060:-12
00000070:-12
;Size Columns Results
00000100:300
00000110:300
00000120:100
00000130:100
00000140:300
00000150:300
;Position Columns Results
00000200:1
00000210:2
00000220:3
00000230:4
00000240:5
00000250:6
;Size Columns Select DB
00000300:140
00000310:240
00000320:190
;Position Columns Select DB
00000400:1
00000410:2
00000420:3
;Size Columns Index DB
00000500:160
00000510:300
00000520:300
00000530:300
00000540:262
00000550:100
00000560:300
00000570:300
00000580:100
00000590:400
;Position Columns Index DB
00000600:2
00000610:3
00000620:4
00000630:5
00000640:6
00000650:7
00000660:8
00000670:9
00000680:10
00000690:20
;Check DbSearch
00000700:
;Check DbIndex
00000800:
;Check TreeDB
00001000:f
;Spliter Position
00001010:672
;Check GridLines
00001020:t
;Original Icon
00001030:f
;DB Path
00001040:C:\APP\IYF\databases-h\
;Show Icons
00001060:t

===== 段落分隔符 =====

7zsfx-cfg-ini.txt ( 7z SFX Builder v2.5.0.5 )

;!@Install@!UTF-8!
InstallPath="D:\\APP\\IYF"
RunProgram="nowait:D:\\APP\\IYF\\IYF.exe"
;!@InstallEnd@!
7zSFXBuilder_SFXName=D:\APP\IYF\ini-.exe
7zSFXBuilder_UseDefMod=7zsd_LZMA2
7zSFXBuilder_SFXFile_1=D:\APP\IYF\iyf.ini
7zSFXBuilder_7Zip_Level=Ultra
7zSFXBuilder_7Zip_Method=LZMA2
7zSFXBuilder_7Zip_Dictionary=64 MB
7zSFXBuilder_7Zip_BlockSize=Solid

===== 段落分隔符 =====

Config-7z-SFX-Builder-v2.5.0.5.txt ( 7z SFX Builder v2.5.0.5 )

;!@Install@!UTF-8!
InstallPath="D:\\APP"
OverwriteMode="1+8"
RunProgram="D:\\APP\\IYF\\iyf-bat.bat"
;!@InstallEnd@!
7zSFXBuilder_SFXName=D:\IYF.exe
7zSFXBuilder_SFXIcon=D:\APP\IYF\icon.ico
7zSFXBuilder_UseDefMod=7zsd_LZMA2
7zSFXBuilder_SFXFile_1=D:\APP\IYF\
7zSFXBuilder_7Zip_Level=Ultra
7zSFXBuilder_7Zip_Method=LZMA2
7zSFXBuilder_7Zip_Dictionary=64 MB
7zSFXBuilder_7Zip_BlockSize=Solid

===== 段落分隔符 =====

show-msg.ahk

MsgBox,0,_,沒有找到銀燦IS903量產的CD-ROM__請插入隨身碟,3
ExitApp

===== 段落分隔符 =====

iyf-bat.bat

rem 搜尋並且執行銀燦IS903量產隨身碟CD-ROM中的Index-Your-Files的批處理指令碼原始碼檔案

@echo off &color 0a &setlocal enabledelayedexpansion

for /f "tokens=1,* delims= " %%a in ('fsutil fsinfo drives') do (set "code=%%b" && set "code=!code::\=!")

for %%a in (!code!) do (
    if exist %%a:\09-Md5Checker.bat (
	del /q D:\APP\IYF\iyf.ini
	erase /q D:\APP\IYF\iyf.ini
	del /q D:\APP\IYF\iyf.ini
	erase /q D:\APP\IYF\iyf.ini
	del /q D:\APP\IYF\iyf.ini
	erase /q D:\APP\IYF\iyf.ini
	rem 用7z-SFX-Builder-v2.5.0.5製作的IYF配置檔案INI自解壓釋放程式
	D:\app\iyf\ini-%%a.exe
	exit
    )
)
rem 用Delphi7製作的能在5秒鐘後定時自動關閉的沒有找到CD-ROM的提示視窗
start /wait D:\app\iyf\show-msg.exe
rem 沒有找到CD-ROM時自解壓空白的IYF配置檔案INI並執行Index-Your-Files軟體
D:\app\iyf\ini-empty.exe
exit


rem echo.!code!
rem pause.

===== 段落分隔符 =====

;

;

;

===== 段落分隔符 =====

auto-config-IYF-INI-Delphi7

IYF-Index-Your-Files-索引你的檔案-極速搜尋檔案-高效查詢檔案



program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.ShowMainForm := False;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.



unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShellAPI;

type
  TExecState = (esNormal, esMinimized, esMaximized, esHidden);

  TForm1 = class(TForm)
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
//function ExecuteFileWait(Handle: HWND; const FileName, Params, StartDir: string; InitialState: TExecState): Integer;
    {
 Handle: 傳入當前視窗或 Applicaton 的控制代碼
 FileName: 需要傳入的檔名
 Params: 執行檔案所帶的引數
 StartDir: 執行檔案啟動路徑
 InitialState: 視窗顯示模式
 }

implementation

{$R *.dfm}

//delphi定義方法ShellExecuteExWait用於程式執行等待,完成程式執行後再執行後面的程式或程式碼;
//呼叫程式碼如下:
//ShellExecuteExWait('04.CertMgr.exe','/c /add 01.taxca2.crt /s root',false);
//其中:04.CertMgr.exe是要執行的程式,/c /add 01.taxca2.crt /s root是執行程式的引數,false是隱藏執行程式的引數

procedure ShellExecuteExWait(const sProgramm: string; const sParams: string = ''; fHide: Boolean = False);
var
  ShExecInfo: TShellExecuteInfo;
begin
  FillChar(ShExecInfo, sizeof(ShExecInfo), 0);
  with ShExecInfo do
  begin
    cbSize := sizeof(ShExecInfo);
    fMask := SEE_MASK_NOCLOSEPROCESS;
    lpVerb := 'open';
    lpFile := PChar(sProgramm);
    lpParameters := PChar(sParams);
        //lpDirectory := PChar(Rjsflj); //Rjsflj可選,定義程式所在目錄資料夾
    if fHide then
      nShow := SW_SHOW
    else
      nShow := SW_HIDE
  end;
  if (ShellExecuteEx(@ShExecInfo) and (ShExecInfo.hProcess <> 0)) then //利用ShellExecuteInfo的hProcess判斷被執行程式情況
  try
    WaitForSingleObject(ShExecInfo.hProcess, INFINITE)
  finally
    CloseHandle(ShExecInfo.hProcess);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: integer;
  exefile: string;
begin
  for i := 65 to 90 do
  begin
//if (GetDriveType(Pchar(chr(i)+':/')) = 2) or (GetDriveType(Pchar(chr(i)+':/')) = 3) then
    if (GetDriveType(Pchar(chr(i) + ':/')) = 5) then
    begin

      if FileExists(chr(i) + ':\01-IYF\IYF-Index-Your-Files.txt') then
      begin

        // Form1.ListBox1.items.addObject(chr(i) + ':/', Pointer(i));

   //使用WinExec也可以開啟程式,這裡不用
//WinExec(Pchar(c:\app\iyf\7z.exe X c:\app\iyf\iyf-%%a.7z -aos -oc:\app\iyf\ -r -y),sw_normal);

        ShellExecuteExWait('c:\app\iyf\7z.exe', 'X c:\app\iyf\iyf-ini-' + chr(i) + '.7z -aoa -oc:\app\iyf\ -r -y', False);
        ShellExecute(0, 'open', Pchar('c:\app\iyf\iyf.exe'), nil, nil, SW_SHOWMAXIMIZED);
        Application.Terminate;
      end;
    end;
  end;
  ShowMessage('沒有找到銀燦IS903量產隨身碟的CD-ROM,請插入隨身碟');
  ShellExecute(0, 'open', Pchar('c:\app\iyf\iyf.exe'), nil, nil, SW_SHOWMAXIMIZED);
  Application.Terminate;
end;
end.

===== 段落分隔符 =====

auto-config-IYF-INI-AutoHotkey

	DriveGet,DriveList,List
	; loop,Parse,CDEFGHIJKLMNOPQRSTUVWXYZ
	loop, Parse, DriveList
	{
		IfExist,%A_LoopField%:\09-Md5Checker.bat
		{
			RunWait,c:\app\iyf\7z.exe X c:\app\iyf\iyf-ini-%A_LoopField%.7z -aos -oc:\app\iyf\ -r -y,c:\app\iyf\,Hide
      Run,c:\app\iyf\iyf.exe
      ExitApp
		}
	}

===== 段落分隔符 =====

auto-config-IYF-INI-Batch

rem 搜尋並且執行容量是4TB的SanDisk閃迪移動固態硬碟E81的批處理指令碼原始碼檔案

@echo off &color 0a &setlocal enabledelayedexpansion

for /f "tokens=1,* delims= " %%a in ('fsutil fsinfo drives') do (set "code=%%b" && set "code=!code::\=!")

for %%a in (!code!) do (
    if exist %%a:\09-Md5Checker.bat (
    start /wait c:\app\iyf\7z.exe X c:\app\iyf\iyf-ini-%%a.7z -aos -oc:\app\iyf\ -r -y
c:
cd \app\iyf
c:\app\iyf\iyf.exe
    exit
    )
)

rem echo.!code!
rem pause.

===== 段落分隔符 =====

C:\SYBACKUP\BAKUPAPP

;!@Install@!UTF-8!
InstallPath="c:\\"
OverwriteMode="1+8"
RunProgram="nowait:C:\\SYBACKUP\\BAKUPAPP\\7z-e.bat"
RunProgram="nowait:C:\\SYBACKUP\\BAKUPAPP\\Open-D-Pan.bat"
;!@InstallEnd@!
7zSFXBuilder_SFXName=C:\SYBACKUP-CGI-Plus-WIM-7zSFX.exe
7zSFXBuilder_SFXIcon=C:\SYBACKUP\BAKUPAPP\7z_SFX_Builder\img.ico
7zSFXBuilder_UseDefMod=7zsd_All
7zSFXBuilder_SFXFile_1=C:\SYBACKUP\
7zSFXBuilder_7Zip_Level=Ultra
7zSFXBuilder_7Zip_Method=LZMA2
7zSFXBuilder_7Zip_Dictionary=64 MB
7zSFXBuilder_7Zip_BlockSize=Solid

===== 段落分隔符 =====

09-Md5Checker.bat

%~D0
cd /d %~dp0
start %~dp019-Md5Checker\Md5Checker.exe %~dp0CHECKSUM.md5
exit

===== 段落分隔符 =====

CHECKSUM-AA43193-Md5Checker-Hash

05ADDF9019893B593FA9FB057E0111EB *SYSTEM\Windows\ESD\Win10-05ADD-x64_LTSC_0803.esd
E176F6E9425F02F4F7BA1E7A7E768ACD *SYSTEM\Windows\ESD\Win7-E176F-x64-2024.08.esd
98AA32ADFBB83FF40CB37F2306FA04BB *06-Reinstall-Windows\13-www.FirPE.cn-C-Pan\FirPE-V1.9.1-MD5-98AA3.exe
55748F710369129E9A6A8E56573571E0 *06-Reinstall-Windows\12-安裝設定測試其他生產工作生活娛樂相關應用程式\Maye-Lite\D-Prog-MD5-55748-2023年12月15日.exe
7B25F88568A968E064A824E9154AC83B *15-備選工具\網路卡驅動包\net_drivers\drivers\DP_WLAN-WiFi_24060.7z

===== 段落分隔符 =====

ISO映象重建工具-生成ISO到此盤.bat

rem 一鍵生成可啟動可量產ISO光碟映象檔案

rem UltraISO Premium Edition 版本 9.7.6.3860
rem 命令列語句語法及引數

set /a y=%date:~,4%,mo=1%date:~5,2%%%100,d=1%date:~8,2%%%100,h=%time:~,2%,m=1%time:~3,2%%%100,s=1%time:~6,2%%%100
rem 月前新增0
if %mo%==0 set mo=00
if %mo%==1 set mo=01
if %mo%==2 set mo=02
if %mo%==3 set mo=03
if %mo%==4 set mo=04
if %mo%==5 set mo=05
if %mo%==6 set mo=06
if %mo%==7 set mo=07
if %mo%==8 set mo=08
if %mo%==9 set mo=09
rem 日前新增0
if %d%==0 set d=00
if %d%==1 set d=01
if %d%==2 set d=02
if %d%==3 set d=03
if %d%==4 set d=04
if %d%==5 set d=05
if %d%==6 set d=06
if %d%==7 set d=07
if %d%==8 set d=08
if %d%==9 set d=09
rem 小時前新增0
if %h%==0 set h=00
if %h%==1 set h=01
if %h%==2 set h=02
if %h%==3 set h=03
if %h%==4 set h=04
if %h%==5 set h=05
if %h%==6 set h=06
if %h%==7 set h=07
if %h%==8 set h=08
if %h%==9 set h=09
rem 分前新增0
if %m%==0 set m=00
if %m%==1 set m=01
if %m%==2 set m=02
if %m%==3 set m=03
if %m%==4 set m=04
if %m%==5 set m=05
if %m%==6 set m=06
if %m%==7 set m=07
if %m%==8 set m=08
if %m%==9 set m=09
rem 秒前新增0
if %s%==0 set s=00
if %s%==1 set s=01
if %s%==2 set s=02
if %s%==3 set s=03
if %s%==4 set s=04
if %s%==5 set s=05
if %s%==6 set s=06
if %s%==7 set s=07
if %s%==8 set s=08
if %s%==9 set s=09
rem echo 當前時間為:%y%年%mo%月%d%日%h%時%m%分%s%秒

md %~d0\MP-USB-DVD
md %~d0\MP-USB-DVD\DVD
md %~d0\MP-USB-DVD\ISO



 %~dp007-UltraISO\UltraISO.exe   -volume   "USB-DVD-AIO-ROM"   -sysid    "USB-DVD-AIO-ROM"   -appid    "USB-DVD-AIO-ROM"   -volset    "USB-DVD-AIO-ROM"   -preparer    "USB-DVD-AIO-ROM"   -publisher    "USB-DVD-AIO-ROM"   -imax   -lowercase   -udfdvd   -bootfile     %~dp007-UltraISO\DVD-AIO-bif.bif    -optimize   -directory   %~dp0   -out   %~d0\MP-USB-DVD\ISO\USB-DVD-AIO-ROM-ISO-%y%-%mo%-%d%_%h%.%m%.%s%.iso

start %~d0\MP-USB-DVD\ISO

exit

rem %~dp021_OSCDIMG\OSCDIMG.exe   -u2   -b%~dp021_OSCDIMG\DVD-AIO-bif.bif   -w1   -c   -h   -l亮仔的IQI_X盤-1980-01-15-   -m   -t1/15/1980,11:11:11   -y6      %~dp0   %~d0\MP-USB-DVD\ISO\USB-DVD-AIO-ROM-ISO-%y%-%mo%-%d%_%h%.%m%.%s%.iso

exit

示例
1.建立一個新的ISO映像,向其中新增一個檔案(autoexec.bat)以及“c:\program files\ultraiso”中的所有檔案和資料夾。使用ISO 9660—MAX名稱長度(最大207),並在檔名中允許使用小寫字元。
ultraiso -imax -I-f c: lautoexec. bat-d "c: \program fileslultraiso"-volu TEST CD -out c:Itest.iso
注意:可以將較短的名稱“I”用於“小寫”,將“out”用於“輸出”,只要它與其他引數不衝突即可。此外,所有帶有SPACE字元的字串或檔名都應用“”引起來。
2.開啟一箇舊的ISO映像,並向其中新增一個檔案和一個資料夾。
ultraiso -in c: \test.iso -f c: \config.sys -f"c: \program fileslultraiso"
3.開啟一個存在的ISO映像,更改目錄並在其中新增一個檔案;然後刪除一個檔案。
ultraiso -in c: \test.iso -c"/program files/ultraiso"-f"c: lautoexec. bat"-rm /autoexec.bat 注意:“/”用作ISO映像中的路徑分隔符。


錯誤碼
返回碼:0表示成功,-1表示錯誤


UltraISO命令列引數:

-volume string   卷標
-sysid string      系統ID
-appid string     應用程式ID
-volset string     卷集ID
-preparer string 準備者
-publisher string 出版者

-ilong          ISO的長檔名,最多31個字元
-imax          ISO的檔名最大長度,最多207個字元
-vernum      包含檔案版本號
-lowercase  允許小寫字母

-joliet          建立Joliet卷
-jlong          Joliet卷的長檔名,最多103個字元
-rockridge  建立RockRidge卷
-udf            建立UDF卷
-hfs            建立Apple HFS卷

-udfdvd      建立UDF DVD映像,此選項將覆蓋所有其他卷設定

-bootfile 檔名   設定引導檔案
-bootinfotable        在引導檔案中生成引導資訊表
-optimize               透過只編碼相同檔案一次來最佳化檔案系統

-file 檔名          新增一個檔案或資料夾(包括資料夾名稱和其下的所有檔案和資料夾)
-directory 目錄名 新增給定目錄下的所有檔案和資料夾(不包括目錄名稱本身)

-newdir 目錄名    建立新目錄
-chdir 目錄名       在ISO映像中更改當前目錄
-rmdir 檔名       從ISO映像中刪除檔案或資料夾(應指定完整路徑)
          -pn 檔名           n=1-9,設定檔案或資料夾的優先順序(應指定完整路徑)  
          -hide 檔名         設定檔案或資料夾的隱藏屬性(應指定完整路徑)
          -ahide 檔名       設定檔案或資料夾的高階隱藏屬性(應指定完整路徑)
          -input 檔名       輸入ISO映像
          -output 檔名     輸出ISO映像
          -bin2iso 檔名   將輸入CD/DVD映像轉換為ISO格式
          -dmg2iso 檔名 將輸入DMG映像轉換為ISO格式
          -bin2isz 檔名   將輸入CD/DVD映像壓縮為ISZ格式
          -compress n         設定壓縮級別,n=1-6
          -encrypt x            設定加密方法,x=1-3
          -password pass_word_string         設定密碼
          -split split_size      以位元組為單位設定分段大小
          -list 檔名         建立ISO映像中的檔案和資料夾列表
          -get 檔名         設定要提取的檔案或資料夾(應指定完整路徑)
          -extract 目錄名    將ISO映像提取到指定目錄
          -copy drive:           從CD/DVD驅動器建立ISO映像(使用-output定義檔名)
          -checksum             在儲存ISO映像之前建立檔案校驗和
          -md5                     在儲存後生成ISO映像的MD5雜湊碼
          -crc32                   在儲存後生成ISO映像的CRC-32校驗和
          -crc16                   在儲存後生成ISO映像的CRC-16/CRC-CCITT校驗和
          --checksum  檔名          建立ISO映像的檔案校驗和
          --md5 檔名                   生成ISO映像的MD5雜湊碼
          --crc32 檔名                 生成ISO映像的CRC-32校驗和
          --crc16 檔名                 生成ISO映像的CRC-16/CRC-CCITT校驗和
          -veryfy  檔名.iso.md5    驗證ISO映像的檔案校驗和
          -veryfymd5 檔名.md5    驗證ISO映像的MD5校驗和
          -cmd 檔名                     從文字檔案中讀取所有命令列選項
          -silent                    不顯示任何彈出視窗

返回程式碼: 0表示成功,-1表示錯誤








rem OSCDIMG 2.56 CD-ROM and DVD-ROM Premastering Utility



Rem Oscdimg 命令列選項

rem OSCDIMG 2.56 CD-ROM and DVD-ROM Premastering Utility
rem 一鍵生成可啟動可量產ISO光碟映象檔案

set /a y=%date:~,4%,mo=1%date:~5,2%%%100,d=1%date:~8,2%%%100,h=%time:~,2%,m=1%time:~3,2%%%100,s=1%time:~6,2%%%100
rem 月前新增0
if %mo%==0 set mo=00
if %mo%==1 set mo=01
if %mo%==2 set mo=02
if %mo%==3 set mo=03
if %mo%==4 set mo=04
if %mo%==5 set mo=05
if %mo%==6 set mo=06
if %mo%==7 set mo=07
if %mo%==8 set mo=08
if %mo%==9 set mo=09
rem 日前新增0
if %d%==0 set d=00
if %d%==1 set d=01
if %d%==2 set d=02
if %d%==3 set d=03
if %d%==4 set d=04
if %d%==5 set d=05
if %d%==6 set d=06
if %d%==7 set d=07
if %d%==8 set d=08
if %d%==9 set d=09
rem 小時前新增0
if %h%==0 set h=00
if %h%==1 set h=01
if %h%==2 set h=02
if %h%==3 set h=03
if %h%==4 set h=04
if %h%==5 set h=05
if %h%==6 set h=06
if %h%==7 set h=07
if %h%==8 set h=08
if %h%==9 set h=09
rem 分前新增0
if %m%==0 set m=00
if %m%==1 set m=01
if %m%==2 set m=02
if %m%==3 set m=03
if %m%==4 set m=04
if %m%==5 set m=05
if %m%==6 set m=06
if %m%==7 set m=07
if %m%==8 set m=08
if %m%==9 set m=09
rem 秒前新增0
if %s%==0 set s=00
if %s%==1 set s=01
if %s%==2 set s=02
if %s%==3 set s=03
if %s%==4 set s=04
if %s%==5 set s=05
if %s%==6 set s=06
if %s%==7 set s=07
if %s%==8 set s=08
if %s%==9 set s=09
rem echo 當前時間為:%y%年%mo%月%d%日%h%時%m%分%s%秒

md D:\01-量產隨身碟

%~dp0Oscdimg -u1 -b %~dp007-UltraISO_bif.bif -w1 -c -h -l曉亮的隨身碟_HyperBackup_1980.01.15 -m -t1/15/1980,11:11:11 -y6  %~dp0..\ D:\01-量產隨身碟\DVD-ISO-rq1-%y%.%mo%.%d%_%h%-%m%-%s%.iso

exit

rem %~dp0Oscdimg -u1 -b %~dp007-UltraISO_bif.bif -os -w1 -c -h -l曉亮的隨身碟_GoodSync_rq1_1980-1-15 -m -t1/15/1980,11:11:11 -y6  %~dp0..\ %~dp0..\..\%y%.%mo%.%d%_%h%-%m%-%s%-rq1-IS903-CD-ISO.iso


Rem Oscdimg 命令列選項

Rem https://learn.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/oscdimg-command-line-options?view=windows-11

Rem oscdimg 語法
Rem Windows 命令提示符複製
Rem Oscdimg [<options>] <sourceLocation> <destinationFile>


?專案
?2022/12/01
?5 個參與者
反饋
Oscdimg 是一個命令列工具,可用於建立自定義 32 位或 64 位版 Windows 預安裝環境 (Windows PE) 的映像 (.iso) 檔案。 然後,可將該 .iso 檔案燒錄到 CD 或 DVD。 Oscdimg 支援 ISO 9660、Joliet 和通用磁碟格式 (UDF) 檔案系統。

oscdimg 語法
Windows 命令提示符複製
Oscdimg [<options>] <sourceLocation> <destinationFile>

檔案系統選項
Oscdimg 工具和 Microsoft Windows 映像母版 API (IMAPI) 支援三種檔案系統格式:ISO 9660、Joliet 和 UDF。

ISO 9660 選項
ISO 9660 選項不能與 Joliet 或 UDF 選項結合使用。 在 ISO 9660 檔案系統中,檔名的長度加上副檔名的長度不能超過 30 個字元。
-d?和?-nt?選項不能一起使用。
選項	說明
-d	允許小寫檔名。 不強制要求將小寫檔名轉換為大寫。
-n	允許檔名長於 DOS 8.3 檔名。
-nt	允許與 Windows NT 3.51 相容的長檔名。

Joliet 選項
Joliet 是 ISO 9660 檔案系統的擴充套件。 Joliet 允許更長的檔名、Unicode 字元和 8 級以上的目錄深度。 Joliet 選項不能與 ISO 9660 選項結合使用。
-j2?Joliet 選項不能與任何 UDF 選項結合使用。
選項	說明
-j1	允許這兩種檔案系統檢視磁碟上的所有資料。 使用此選項不會複製映像中的所有檔案。 此選項對 Joliet Unicode 檔名進行編碼,並在 ISO 9660 名稱空間中生成與 DOS 8.3 相容的檔名。 這些檔名可由 Joliet 系統或傳統的 ISO 9660 系統讀取。 但是,Oscdimg 可能會更改 ISO 9660 名稱空間中的某些檔名,以遵守 DOS 8.3 和 ISO 9660 命名限制。
-j2	對不使用標準 ISO 9660 名稱的 Joliet Unicode 檔名進行編碼。 此選項用於生成僅包含 Joliet 檔案系統的映像。? 無法讀取 Joliet 的任何系統只會看到一個預設文字檔案,該檔案會提醒使用者此映像僅在支援 Joliet 的計算機上可用。
-js	替代使用者在指定 -j2 選項時使用的預設文字檔案。 例如:
複製
-jsC:\readme.txt

UDF 選項
UDF 選項不能與 ISO 9660 選項結合使用。?-ue、-uf?和?-us?選項僅在與?-u2?選項一起使用時才適用。
選項	說明
-u1	生成同時包含 UDF 檔案系統和 ISO 9660 檔案系統的映像。 ISO 9660 檔案系統是使用與 DOS 8.3 相容的檔名編寫的。 UDF 檔案系統是使用 Unicode 檔名編寫的。
-u2	生成僅包含 UDF 檔案系統的映像。 無法讀取 UDF 的任何系統只會看到一個預設文字檔案,該檔案會提醒使用者此映像僅在支援 UDF 的計算機上可用。
-udfver102	指定 UDF 檔案系統版本 1.02。
-ue	建立嵌入式檔案。
-uf	嵌入 UDF 檔案識別符號條目。
-ur	替代與 -u2 選項一起使用的預設文字檔案。 例如:
複製
-urC:\Readme.txt
-us	建立稀疏檔案(如果可用)以提高磁碟空間使用效率。
-yl	指定長分配描述符而不是短分配描述符。

CD 或 DVD 啟動選項
啟動選項可用於建立可啟動的 CD 或 DVD 映像。 以下啟動選項可用於生成單啟動項。 有關詳細資訊,請參閱使用單啟動項建立可啟動映像。
選項	說明
-b<bootSectorFile>	指定將寫入到磁碟的一個或多個啟動扇區中的 El Torito 啟動扇區檔案。 請不要使用空格。 例如:
在 UEFI 上:-bC:\winpe_x86\Efisys.bin
在 BIOS 上:-bC:\winpe_x86\Etfsboot.com
-e	禁用 El Torito 目錄中的軟盤模擬。
-p	指定用於 El Torito 目錄中平臺 ID 的值。 預設 ID 為 0xEF,表示統一可擴充套件韌體介面 (UEFI) 系統。 0x00 表示 BIOS 系統。
<sourceLocation>	必需。 指定您要建立到 .iso 映像中的檔案的位置。
<targetFile>	指定 .iso 映像檔案的名稱。
?重要
不能在同一條命令中結合使用單啟動項和多啟動項。

多啟動項
以下啟動選項可用於生成多啟動項。 有關詳細資訊,請參閱使用多啟動項建立映像檔案。
選項	說明
b<bootSectorFile>	指定將寫入到磁碟的一個或多個啟動扇區中的 El Torito 啟動扇區檔案。 請不要使用空格。 例如:
在 UEFI 上:bEfisys.bin
在 BIOS 上:bEtfsboot.com
-bootdata:<number>	指定多啟動映像,後接啟動項數。 請不要使用空格。 例如:
複製
-bootdata:<3>#<defaultBootEntry>#<bootEntry1>#<bootEntryN>
其中?<3>?是後面的啟動項數。
e	禁用 El Torito 目錄中的軟盤模擬。
p	指定用於 El Torito 目錄中平臺 ID 的值。 預設 ID 為 0xEF,表示 UEFI 系統。 0x00 表示 BIOS 系統。
t	指定 El Torito 負載段。 如果未指定,此選項預設為 0x7C0。
<sourceLocation>	必需。 指定您要建立到 .iso 映像中的檔案的位置。
<targetFile>	指定 .iso 映像檔案的名稱。

最佳化選項
最佳化選項可用於透過僅對重複檔案編碼一次來最佳化儲存。
選項	說明
-o	使用 MD5 雜湊演算法來比較檔案。
-oc	使用每個檔案的二進位制比較,速度比 -o 選項更慢。
-oi	比較檔案時忽略 Diamond 壓縮時間戳。

順序選項
順序選項指定磁碟上的檔案順序。 檔案排序命令不一定會列出所有檔案。 未出現在此檔案中的所有檔案將按普通方式(即,不存在排序檔案時的方式)排序。 有關詳細資訊,請參閱指定啟動順序。
-yo?選項優先於?-y5?選項。
選項	說明
-y5	指定磁碟上的檔案佈局。 此選項首先按相反的排序順序寫入 i386 目錄中的所有檔案。
-yo<bootOrder.txt>	指定一個文字檔案,其中指定了要放入映像的檔案的佈局。 請不要使用空格。 例如:
複製
-yoC:\temp\bootOrder.txt

DVD 影片和音訊選項
DVD 影片和音訊磁碟建立選項不能與 ISO 9660、Joliet 或 UDF 選項結合使用。
選項	說明
-ut	在建立 DVD 影片和音訊磁碟期間截斷映像的 ISO 9660 部分。 使用此選項時,在 ISO 9660 檔案系統中只能看到 VIDEO_TS、AUDIO_TS 和 JACKET_P 目錄。
-uv	在建立 DVD 影片和音訊磁碟期間指定 UDF 影片區域相容性。 在建立期間,UDF 1.02 和 ISO 9660 將寫入磁碟。 首先寫入 VIDEO_TS、AUDIO_TS 和 JACKET_P 目錄中的所有檔案。 這些目錄優先於用於此映像的所有其他排序規則。

訊息傳送選項
訊息選項自定義檔案和目錄資訊的顯示方式。
選項	說明
-a	顯示檔案和目錄的分配摘要。
-os	當系統建立映像時顯示重複檔案。
-w1	報告所有不符合 ISO 或 Joliet 規範的檔名或目錄。
-w2	報告所有不符合 DOS 規範的檔名。
-w3	報告所有零長度檔案。
-w4	報告複製到映像的每個檔名。
-yd	消除針對初始 64,000 位元組相同的不同檔案的警告。

常規映像建立選項
可將常規映像建立選項與單啟動項選項或多啟動項選項一起使用,以建立可啟動的 CD 或 DVD 映像。 有關詳細資訊,請參閱啟動選項和示例。
-m?和?-maxsize?選項不能一起使用。
選項	說明
-c	指定系統必須使用 ANSI 檔名而不是 OEM 檔名。
-g	將所有檔案的時間值編碼為協調世界時 (UCT) 而不是本地時間。
-h	在映像的源路徑中包含隱藏的檔案和目錄。
-k	即使某些原始檔無法開啟,也建立映像。
-l<volumeLabel>	指定卷標。 請不要使用空格。 例如:
複製
-l<volumeLabel>
-m	忽略映像的最大大小限制。
-maxsize:<limit>	替代映像的預設最大大小。 預設值為 74 分鐘的 CD。 但是,如果使用 UDF,則預設沒有最大大小。 請不要使用空格。 例如:
複製
-maxsize:<4096>
其中?<4096>?將映像限制為 4096 MB。
-q	僅掃描原始檔。 此選項不會建立映像。
-r	Windows 8 的新增功能。 將符號連結解析為其目標位置。
-t<mm/dd/yyyyy,hh:mm:ss>	指定所有檔案和目錄的時間戳。 請不要使用空格。 可以在項之間使用任意分隔符。 例如:
複製
-t12/31/2000,15:01:00
-y6	指定目錄記錄必須在扇區末尾精確對齊。
-yw	開啟具有寫入共享的原始檔。

示例
這些示例演示瞭如何執行以下操作:
?使用單啟動項為基於 UEFI 的計算機建立可啟動的 CD 或 DVD。
?使用多啟動項為基於 UEFI 或 BIOS 的計算機建立可啟動的 CD 或 DVD。
?指定磁碟上的啟動檔案順序。

使用單啟動項建立可啟動映像
可以使用 Oscdimg 工具透過單啟動項建立可啟動的 CD 或 DVD。
若要使用單啟動項,請執行以下操作:
?
為基於 UEFI 的計算機建立映像檔案。 例如:
?
Windows 命令提示符複製
?
Oscdimg -bC:\winpe_amd64\Efisys.bin -pEF -u1 -udfver102 C:\winpe_amd64\media C:\winpe_amd64\winpeamd64.iso
?
其中?C:\winpe_amd64\media is the location of the source files, and?C:\winpe_amd64\winpeamd64.iso` 是 .iso 檔案的路徑。
?

使用多啟動項建立可啟動映像
可以使用 Oscdimg 工具透過多重啟動項建立可啟動的 CD 或 DVD。 執行此操作時,請注意以下事項:
?命令中的 bootdata 選項必須後接啟動項數 (-bootdata:<number>)。
?必須用井號 (#) 分隔每個多啟動項。
?必須用逗號 (,) 分隔啟動項的每個選項。
?每個啟動項必須指定平臺 ID。
若要使用多啟動項,請執行以下操作:
?
使用多啟動命令為基於 UEFI 或 BIOS 的計算機建立映像檔案。 例如:
?
Windows 命令提示符複製
?
Oscdimg -bootdata:2#p0,e,bEtfsboot.com#pEF,e,bEfisys.bin -u1 -udfver102 C:\winpe_amd64\media C:\winpe_amd64\winpeamd64.iso
?
此命令啟動 BIOS 映像的 Etfsboot.com 啟動檔案,然後啟動 UEFI 映像的 Efisys.bin 啟動檔案。
?

指定啟動順序
對於大於 4.5 GB 的映像,必須建立啟動順序檔案,以確保啟動檔案位於映像的開頭。
檔案排序規則如下:
?順序檔案必須採用 ANSI 格式。
?順序檔案必須以換行符結尾。
?順序檔案的每行必須指定一個檔案。
?指定的每個檔案的路徑必須相對於映像的根目錄。
?必須以長檔名格式指定每個檔案。 不允許使用短名稱。
?每個檔案路徑不能超過 MAX_PATH。 這包括卷名。
例如,對於 D:\cdimage 中的檔案,需按如下所示指定路徑(其中 D 是 DVD 驅動器的驅動器號):
?D:\cdimage\1\1.txt
?D:\cdimage\2\2.txt
?D:\cdimage\3\3.txt
?D:\cdimage\3\3_5.txt
?D:\cdimage\<longFileName>.txt

建立啟動順序檔案
?
建立啟動順序檔案。 例如:
?
Windows 命令提示符複製
?
Oscdimg -m -n -yoC:\temp\bootOrder.txt -bC:\winpe_amd64\Efisys.bin C:\winpe_amd64\winpeamd64.iso
?
其中 BootOrder.txt 包含以下檔案列表:
?
複製
?
boot\bcd
boot\boot.sdi
boot\bootfix.bin
boot\bootsect.exe
boot\etfsboot.com
boot\memtest.efi
boot\memtest.exe
boot\en-us\bootsect.exe.mui
boot\fonts\chs_boot.ttf
boot\fonts\cht_boot.ttf
boot\fonts\jpn_boot.ttf
boot\fonts\kor_boot.ttf
boot\fonts\wgl4_boot.ttf
sources\boot.wim
?

相關主題
WinPE:建立 USB 可啟動驅動器
Windows 部署命令列工具參考

建議的內容
?

?
使用 WIM 檔案捕獲和應用 Windows
?

?
使用單個 WIM 檔案捕獲和應用 Windows
?
?

?
DISM 映像管理命令列選項
?

?
DISM 映像管理命令列選項
?
?

?
向離線 Windows 映像新增和刪除驅動程式包
?

?
向離線 Windows 映像新增和刪除驅動程式包
?
?

?
基於 UEFI/GPT 的硬碟驅動器分割槽
?

?
基於 UEFI/GPT 的硬碟驅動器分割槽
?
?

?
應答檔案 (unattend.xml)
?

?
應答檔案 (unattend.xml
?
?

?
使用 DISM 修改 Windows 映像
?

?
使用 DISM 修改 Windows 映像
?
?

?
DISM 命令列選項
?

?
DISM 命令列選項
?
?

?
Wpeutil 命令列選項
?

?
Wpeutil 命令列選項

===== 段落分隔符 =====

開啟量產隨身碟更新專用資料夾.bat

rem 搜尋並且執行容量是4TB的SanDisk閃迪移動固態硬碟E81的批處理指令碼原始碼檔案

@echo off &color 0a &setlocal enabledelayedexpansion

for /f "tokens=1,* delims= " %%a in ('fsutil fsinfo drives') do (set "code=%%b" && set "code=!code::\=!")

for %%a in (!code!) do (
    if exist %%a:\量產隨身碟更新 (
    start %%a:\量產隨身碟更新
    exit
    )
)

rem echo.!code!
rem pause.

===== 段落分隔符 =====

開啟量產隨身碟更新專用資料夾2

@echo off
rem 搜尋並且執行容量是4TB的SanDisk閃迪移動固態硬碟E81中的Maye程式的批處理指令碼原始碼檔案
rem set "FileName=Maye.EXE"
echo 正在搜尋,請稍候...
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist %%a:\量產隨身碟更新 (
    start %%a:\量產隨身碟更新
    exit
    )
)

===== 段落分隔符 =====

FenLei批次分類整理檔案2次迴圈.ahk

; ========== 此AHK指令碼從此行開始 ==========
; 按照檔案型別批次整理子資料夾中所有檔案的AHK腳步
#SingleInstance,force
loop,5
{
	DetectHiddenWindows,On
	Sleep,5
	IfWinExist,QQ595076941_fenlei
		ExitApp
}
Gui, Show, Hide,QQ595076941_fenlei
runwith("admin","ansi")   ;強制自身以 ansi + 管理員許可權 執行。
#Persistent
; #NoTrayIcon
DetectHiddenWindows,On
SetTitleMatchMode,2
; ========== 此行是此AutoHotkey指令碼的程式碼塊段落分隔行 ==========
;~ 在大批次移動檔案之前必需先詢問一下
MsgBox, 4, , "Loop All  Files  in ScriptDir"`n"是否立即按照檔案型別批次整理子目錄中所有檔案?"`n`ncontinue?
IfMsgBox, No
ExitApp
MsgBox, 4, , "Loop All  Files  in ScriptDir"`n"是否立即按照檔案型別批次整理子目錄中所有檔案?"`n`ncontinue?
IfMsgBox, No
	ExitApp

loop,2
{
	FileCreateDir,%A_ScriptDir%\F
	FileCreateDir,%A_ScriptDir%\!Classify
	;~ 為重要檔案的資料夾寫上字首標記
	global 	importantmark
	;~ global 	ProgressParam
	;~ ProgressParam:=0
	loop,Files,%A_ScriptDir%\F\*.*,R ;遞迴遍歷窮舉資料夾和子資料夾中的檔案
	{
		;;      進度條視窗不可以移動,並且比較煩人
		;;  	ProgressParam:=ProgressParam+0.5
		;;  	if(ProgressParam>99)
		;;  	ProgressParam:=0
		;;  	;~ 進度條
		;;  	Progress, %ProgressParam%, %a_loopfilename%,"Moveing Files ...", "Classify And Arrange Files in Folder F"
		if(A_LoopFileExt="")
		{
			IfNotExist,%A_ScriptDir%\!Classify\NullFileExt
				FileCreateDir,%A_ScriptDir%\!Classify\NullFileExt
			FileMove,%A_LoopFileFullPath%,%A_ScriptDir%\!Classify\NullFileExt\%A_LoopFileName%
			Sleep,9
			continue
		}
		importantmark:=""
	if((A_LoopFileExt="docx") or(A_LoopFileExt="xlsx") or	(A_LoopFileExt="jpg") )
	importantmark:="1_"
	if((A_LoopFileExt="ani") or (A_LoopFileExt="au3") or (A_LoopFileExt="flac") or (A_LoopFileExt="avi") or (A_LoopFileExt="doc") or (A_LoopFileExt="dotx") or  (A_LoopFileExt="xls") or  (A_LoopFileExt="xltx") or  (A_LoopFileExt="dot") or  (A_LoopFileExt="xlt")  or  (A_LoopFileExt="ISO") or  (A_LoopFileExt="GHO")   or  (A_LoopFileExt="flv") or (A_LoopFileExt="jpeg")  or (A_LoopFileExt="mp4") or	(A_LoopFileExt="png") or (A_LoopFileExt="ppt") or	(A_LoopFileExt="pdf")   or	(A_LoopFileExt="7z")   or	(A_LoopFileExt="ahk")   or	(A_LoopFileExt="bat")   or	(A_LoopFileExt="chm")   or	(A_LoopFileExt="cmd")   or	(A_LoopFileExt="dot")   or	(A_LoopFileExt="exe")   or	(A_LoopFileExt="ico")   or	(A_LoopFileExt="mdb") or	(A_LoopFileExt="mkv") or	(A_LoopFileExt="mp3")   or	(A_LoopFileExt="pas")   or	(A_LoopFileExt="rar")   or	(A_LoopFileExt="txt")   or	(A_LoopFileExt="rmvb")   or	(A_LoopFileExt="vbs")   or	(A_LoopFileExt="zip"))
	importantmark:="2_"
	;~ MsgBox,% A_LoopFileSizeMB
	IfGreater,A_LoopFileSizeMB,500
		importantmark:="3_Big500MB_"
	;~ 如果當前檔案是此指令碼本身那麼跳過當前迴圈的剩餘部分並繼續下一次迴圈遞迴遍歷窮舉檔案
	if(A_ScriptFullPath=A_LoopFileFullPath)
	{
		continue
	}
;~ 如果當前指令碼所在目錄沒有當前迴圈的檔案則直接移動檔案並繼續下一個迴圈
	IfNotExist,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%A_LoopFileName%
	{
		IfNotExist,%A_ScriptDir%\!Classify\%A_LoopFileExt%
			FileCreateDir,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%
		FileMove,%A_LoopFileFullPath%,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%A_LoopFileName%
		Sleep,9
		continue
	}
	;;如果當前迴圈的檔案就在當前指令碼所在目錄中那麼跳過當前迴圈的剩餘部分並繼續下一次迴圈
ScriptDirLoopFileName=%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%A_LoopFileName%
if( ScriptDirLoopFileName=A_LoopFileFullPath)
{
	continue
}
;~ MsgBox,%A_LoopFileFullPath%
;~ 重新命名重複檔案
DuplicateFileCount:=1
loop
{
	IfExist,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%DuplicateFileCount%_%A_LoopFileName%
	{
		DuplicateFileCount=% ++DuplicateFileCount
		continue
	}
	else
	{
		IfNotExist,%A_ScriptDir%\!Classify\%A_LoopFileExt%
			FileCreateDir,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%
		FileMove,%A_LoopFileFullPath%,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%DuplicateFileCount%_%A_LoopFileName%
		Sleep,9
		break
	}
}
}
}


MsgBox, 64, , %A_ScriptDir%"All  Files  in ScriptDir is Classifyed And Arranged"`n"恭喜你, 已經按照檔案型別完成所有當前指令碼所在目錄和子目錄中檔案的分類整理"!
;~ MsgBox, 64, , "操作失敗的檔案共有"%ErrFileCount%"個,詳細出錯原因列表見ErrFileList.txt檔案"!
return
; ========== 此行是此AutoHotkey指令碼的程式碼塊段落分隔行 ==========
; 強制自身程序以 管理員許可權 或 普通許可權 或 ANSI 或 U32 或 U64 版本執行。
; 例1: runwith("admin","u32") 強制自身以 u32 + 管理員許可權 執行。
; 例2: runwith("","ansi")     強制自身以 ansi 版本執行(許可權不變)。
; 例3: runwith("normal")      強制自身以 普通許可權 執行(版本不變)。
RunWith(RunAsAdmin:="Default", ANSI_U32_U64:="Default")
{
	; 格式化預期的模式
	switch, RunAsAdmin
	{
		case "Normal","Standard","No","0":		RunAsAdmin:=0
		case "Admin","Yes","1":								RunAsAdmin:=1
		case "default":												RunAsAdmin:=A_IsAdmin
default:															RunAsAdmin:=A_IsAdmin
	}
switch, ANSI_U32_U64
{
	case "A32","ANSI","A":								ANSI_U32_U64:="AutoHotkeyA32.exe"
	case "U32","X32","32":								ANSI_U32_U64:="AutoHotkeyU32.exe"
	case "U64","X64","64":								ANSI_U32_U64:="AutoHotkeyU64.exe"
	case "default":												ANSI_U32_U64:="AutoHotkey.exe"
default:															ANSI_U32_U64:="AutoHotkey.exe"
	}
; 獲取傳遞給 “.ahk” 的使用者引數(不是 /restart 之類傳遞給 “.exe” 的開關引數)
for k, v in A_Args
{
	if (RunAsAdmin=1)
	{
		; 轉義所有的引號與轉義符號
		v:=StrReplace(v, "\", "\\")
		v:=StrReplace(v, """", "\""")
		; 無論引數中是否有空格,都給引數兩邊加上引號
		; Run       的內引號是 "
		ScriptParameters  .= (ScriptParameters="") ? """" v """" : A_Space """" v """"
	}
	else
	{
		; 轉義所有的引號與轉義符號
		; 注意要轉義兩次 Run 和 RunAs.exe
		v:=StrReplace(v, "\", "\\")
		v:=StrReplace(v, """", "\""")
		v:=StrReplace(v, "\", "\\")
		v:=StrReplace(v, """", "\""")
		; 無論引數中是否有空格,都給引數兩邊加上引號
		; RunAs.exe 的內引號是 \"
		ScriptParameters .= (ScriptParameters="") ? "\""" v "\""" : A_Space "\""" v "\"""
	}
}
; 判斷當前 exe 是什麼版本
if (!A_IsUnicode)
	RunningEXE:="AutoHotkeyA32.exe"
else if (A_PtrSize=4)
	RunningEXE:="AutoHotkeyU32.exe"
else if (A_PtrSize=8)
	RunningEXE:="AutoHotkeyU64.exe"
; 執行模式與預期相同,則直接返回。 ANSI_U32_U64="AutoHotkey.exe" 代表不對 ahk 版本做要求。
if (A_IsAdmin=RunAsAdmin and (ANSI_U32_U64="AutoHotkey.exe" or ANSI_U32_U64=RunningEXE))
	return
; 如果當前已經是使用 /restart 引數重啟的程序,則報錯避免反覆重啟導致死迴圈。
else if (RegExMatch(DllCall("GetCommandLine", "str"), " /restart(?!\S)"))
{
	預期許可權:=(RunAsAdmin=1) ? "管理員許可權" : "普通許可權"
	當前許可權:=(A_IsAdmin=1)  ? "管理員許可權" : "普通許可權"
	ErrorMessage=
	(LTrim
		預期使用: %ANSI_U32_U64%
		當前使用: %RunningEXE%
		預期許可權: %預期許可權%
		當前許可權: %當前許可權%
		程式即將退出。
	)
	MsgBox 0x40030, 執行狀態與預期不一致, %ErrorMessage%
	ExitApp
}
else
{
	; 獲取 AutoHotkey.exe 的路徑
	SplitPath, A_AhkPath, , Dir
	if (RunAsAdmin=0)
	{
		; 強制普通許可權執行
		switch, A_IsCompiled
		{
			; %A_ScriptFullPath% 必須加引號,否則含空格的路徑會被截斷。%ScriptParameters% 必須不加引號,因為構造時已經加了。
			; 工作目錄不用單獨指定,預設使用 A_WorkingDir 。
			case, "1": Run, RunAs.exe /trustlevel:0x20000 "\"%A_ScriptFullPath%\" /restart %ScriptParameters%",, Hide
default: Run, RunAs.exe /trustlevel:0x20000 "\"%Dir%\%ANSI_U32_U64%\" /restart \"%A_ScriptFullPath%\" %ScriptParameters%",, Hide
	}
}
else
{
	; 強制管理員許可權執行
	switch, A_IsCompiled
	{
		; %A_ScriptFullPath% 必須加引號,否則含空格的路徑會被截斷。%ScriptParameters% 必須不加引號,因為構造時已經加了。
		; 工作目錄不用單獨指定,預設使用 A_WorkingDir 。
		case, "1": Run, *RunAs "%A_ScriptFullPath%" /restart %ScriptParameters%
default: Run, *RunAs "%Dir%\%ANSI_U32_U64%" /restart "%A_ScriptFullPath%" %ScriptParameters%
	}
}
ExitApp
}
}
; ========== 此AutoHotkey指令碼到此行結束 ==========

===== 段落分隔符 =====

一鍵打包成exe.bat

REM  D:\Prog\_一鍵打包成exe\一鍵打包成exe.bat
REM  此批處理指令碼檔案最後編輯日期  2022年9月23日
REM  SS-Archivarius-3000中的SS 是 Silent Setup  的簡寫,表示靜默安裝                                                                                                       

if exist "C:\Program Files (x86)\WinRAR\WinRAR.exe" (
"C:\Program Files (x86)\WinRAR\WinRAR.exe" a -ag__YYYY.MM.DD_HH-MM-SS -iiconico.ico -ep1 -m5 -r -sfx -z%~dp0自解壓指令碼命令.txt %~dp0SS-D-Pan-Prog-.exe %~dp0D_Pan\Prog\*.*
)else (
"C:\Program Files\WinRAR\WinRAR.exe" a -ag__YYYY.MM.DD_HH-MM-SS -iiconico.ico -ep1 -m5 -r -sfx -z%~dp0自解壓指令碼命令.txt %~dp0SS-D-Pan-Prog-.exe %~dp0D_Pan\Prog\*.*
)





===== 段落分隔符 =====

PYIndexUnit

unit PYIndexUnit;

{*******************************************************}
{                漢字-->拼音聲母處理                    }
{           Developed by cyw(QQ: 26890954)              }
{           2012.2.14 All Right Reserved.               }
{*******************************************************}

{
一、特點:
1、支援多音字,支援所有中國漢字(共20912個),包括難字、生僻字、廣東白話字、繁體字等所有計算機能顯示的全部漢字。
   例如:鎔、啱、搵、叻、嘅、咁、門、長、發財、車、冇乜嘢。
2、支援Delphi6至DelphiXE2的所有Delphi版本。

二、實現原理:
1、根據漢字的編碼規則,第一位元組為區碼(縱向),第二位元組為位碼(橫向),
   第一位元組的範圍是129-254,共126種,其中161-169段存放各種標點符號,254段為無效漢字,真正有效段為129-160,170-253,共116種。
   第二位元組的範圍是64-254,其中127段為分隔符,不存在任何內容,真正有效段為64-126,128-254,共190種。
   排除無效字元及標點符號後,有效的漢字型檔分為三部分:
   1)第一部分(區:129-160 位:64-254[除127]) 	32*190=6080
   2)第二部分(區:170-253 位:64-160[除127])  84*96 =8064
   3)第三部分(區:176-247 位:161-254)        72*94 =6768
                                             合計: 20912個漢字
2、按以上規則可生成三個部分的中國漢字字型檔,每個區碼一行,每個位碼一列。
3、對中國漢字字型檔中的每個漢字,掃描從網際網路下載的較完整的<GBK漢字各種編碼彙總.xls>拼音字型檔,找到每個漢字的全拼拼音(包括多音,一個漢字最多4種讀音),並獲取每個讀音的聲母(首字母),
   生成漢字聲母字典檔案。
4、把聲母字典檔案中每個漢字的聲母,按漢字字型檔的區位規則全部串在一起,由於一個漢字最多3種讀音(有4種以上讀音的僅有"竓qfzygs, 竕sfzyg, 竡ygsb"三個生僻字, 僅取前三個讀音),
   為每個漢字預留3個位元組空間,生成漢字聲母表,如本單元所定義的Part1..Part3常量。
5、查詢原理:要查詢一個漢字在聲母表中的對應位置,應使用以下公式計算得:
       漢字聲母索引 = ((漢字區碼 - 段落起始區碼) * 位碼長度 + 漢字位碼 - 段落起始位碼) * 3 + 1;  //其中3表示每個漢字預留的3個位元組空間
   如漢字“啊”,其區位碼分別是(176,161),根據上述第1點所定義,屬於第三部分漢字,理應在常量Part3中查詢,
   由於第三部分的位碼範圍是161-254,橫向長度是94,即一行(一個區)有94個漢字,所以“啊”在Part3中的位置應該是:
   ((176-176) * 94 + 161 - 161) * 3 + 1 = 1,即Part3[1] = 'a';

三、更新歷史:
1、10.9.8 由於全拼輸入法的拼音庫太過全面,有部分多音字的第一個拼音卻不是常用的拼音,導致漢字轉聲母有時不準確,
          決定拋棄全拼輸入法的拼音庫,改為採用從網際網路下載的較完整的<GBK漢字各種編碼彙總.xls>拼音字型檔,重新生成漢字聲母表。
2、10.12.27 上一次更新時是在Excel中編輯<GBK漢字各種編碼彙總.xls>檔案的,在Excel內替換右括號")"為空時,"Jun1)"替換後會變成"1-Jun",
             Excel的奇怪現象,導致"軍"字的聲母變成數字"1",類似的情況還有很多。本次更新全面修正此類問題,並且經檢測發現99.9%以上的
             多音字最多隻有三個讀音,僅"竓qfzygs, 竕sfzyg, 竡ygsb"三個生僻字有4種以上讀音, 故聲母表全部由4個位元組改為預留3個位元組,
             上述三個僻字僅擷取前三個讀音的聲母。
3、12.2.14 之前的版本按常用程度分為五個級別,但卻漏了(區:170-175 位:64-160)一段漢字,合計漏了6*96=576個漢字未處理。今改為按漢字編碼
           分佈規則,劃分為三個部分(三段),共計20912個漢字,是迄今為止史上最完整的漢字字型檔。據此生成的Part1、Part2、Part3三個聲母
           常量也是最完整的漢字聲母表。另外,從該版本起,開始支援Delphi2007-DelphiXE2。
}

interface

uses
  SysUtils;

//--------------------------- 宣告段 -------------------------------------------

//獲取指定漢字的拼音索引字母,如:漢 = h。多音字返回多個聲母,如:行 = hx
function GetPYIndex(const OneWord: AnsiString; const OnlyOne: Boolean = False):
  AnsiString;
//獲取指定字串的拼音索引字母(多音字總是取第一個音的聲母)。如:中山大學 = zsdx
function GetStrPYIndex(const Str: AnsiString): AnsiString;
//獲取字串Str中與拼音聲母字串PYStr匹配的起始位置。如:PosPY('zsdx','我來自中山大學') = 7
function PosPY(const PYStr, Str: AnsiString): Integer;
//判斷字串Str的拼音聲母是否全部與PYStr相同。如:SamePY('zsdx', '中山大學') = True
function SamePY(const PYStr, Str: AnsiString): Boolean;
//獲取字串Str中拼音聲母串與字串SubStr拼音聲母串匹配的起始位置。如:PosTextPY('縱聲大笑', '我來自中山大學') = 7
function PosTextPY(const SubStr, Str: AnsiString): Integer;
//判斷字串Str的拼音聲母是否全部與字串SubStr的拼音聲母相同。如:SameTextPY('縱聲大笑', '中山大學') = True
function SameTextPY(const SubStr, Str: AnsiString): Boolean;

//---------------------------- 實現段 ------------------------------------------
implementation

const
  MaxPYLength       = 3;                //最大的拼音聲母個數

  //第一段漢字聲母表 (區:129-160 位:64-254[除127]) 	32*190=6080
  Part1             =
    'k  s  x  n  m  c  s  d  q  l  y  b  j  j  j  g  c  z  n  jd f  y  ya n  j  n  z  h  cs y  n  g  d  n  n  n  s  n  j  n  s  n  n  n  x  y  f  s  n  gq n  n  n  n  z  gjqg  l  l  y  j  n  s  y  s  s  g  y  q  y  t  n  h  j  y  y  d  l  d  w  j  n  w  b  '
    + 'b  f  s  n  x  c  h  g  d  c  c  s  r  j  c  q  w  y  f  c  w  d  z  p  y  d  d  w  y  x  j  a  j  b  c  f  t  cz y  c  x  x  x  c  x  n  n  x  x  z  q  b  p  y  s  a  z  h  m  z  b  q  b  s  c  y  z  b  xs j  n  n  h  h  x  g  f  m  b  h  h  g  q  c  '
    + 'x  s  t  gk l  y  g  y  m  x  a  l  e  l  c  c  x  z  r  j  j  z  n  n  j  j  c  z  c  c  l  j  s  t  s  t  b  n  h  t  y  x  x  k  k  w  y  f  l  h  j  x  s  p  x  m  x  x  t  c  n  l  s  h  x  j  b  tc f  y  b  yz x  c  c  z  b  z  y  c  l  w  l  c  '
    + 'z  g  t  s  m  t  c  x  p  q  g  jl x  j  f  z  z  l  s  l  h  d  z  b  w  j  n  c  j  y  s  n  y  c  q  n  z  c  w  y  b  t  y  f  t  w  e  c  s  k  d  c  b  y  h  y  z  q  y  y  x  z  c  f  b  z  m  j  y  x  x  sc d  cz z  t  b  z  j  w  s  c  s  x  '
    + 'y  r  r  y  g  m  d  t  h  j  x  s  q  j  c  c  s  b  x  y  y  t  s  w  f  b  j  z  n  z  l  y  z  z  p  s  cz y  z  z  s  q  q  h  z  q  y  d  x  l  b  p  j  l  l  m  q  x  q  y  d  z  s  q  j  t  z  p  l  c  g  q  d  c  w  z  f  h  c  t  d  jy f  x  '
    + 'j  e  l  b  g  x  x  m  y  j  j  q  f  z  a  s  y  j  n  s  y  d  k  j  c  j  s  z  n  b  a  t  c  c  l  n  j  q  m  w  n  q  n  c  l  l  k  b  d  b  z  z  s  y  h  q  c  l  t  w  l  c  c  r  s  h  l  l  z  n  t  y  l  n  z  x  d  d  t  cz e  e  j  y  '
    + 's  sk q  f  m  x  d  bk l  k  w  n  l  ys n  t  n  j  y  m  r  y  m  c  j  g  j  m  z  g  x  y  k  y  m  s  m  z  k  n  f  x  m  t  g  h  p  f  m  x  j  s  m  s  g  j  qj d  g  y  a  l  c  m  z  c  s  d  j  l  x  d  f  f  j  c  n  f  n  n  f  f  k  g  '
    + 'p  k  h  r  c  j  q  c  j  d  w  j  l  f  q  j  m  l  z  b  j  j  s  c  g  c  k  d  e  j  c  j  l  l  z  y  c  k  c  c  c  l  f  c  q  c  z  g  b  d  q  z  j  j  y  h  d  d  w  g  s  j  z  k  c  j  c  tz l  l  f  s  k  g  h  z  z  l  j  l  g  j  g  j  '
    + 'j  t  j  j  j  z  c  c  m  l  z  y  j  k  x  z  y  z  m  l  j  k  y  w  x  m  k  j  l  k  j  h  m  c  l  y  k  j  q  l  b  l  k  m  d  x  w  y  x  w  s  l  l  p  s  j  q  jc q  x  y  q  f  j  t  j  d  m  x  x  l  l  c  r  q  y  j  b  n  n  g  g  n  p  '
    + 'j  t  g  a  g  d  j  q  n  j  y  j  k  h  q  f  q  cz k  h  y  g  h  d  k  l  l  s  d  j  q  x  a  y  qo x  n  z  s  x  w  w  x  dc j  sl k  x  x  j  ay q  s  s  x  q  w  j  e  x  n  h  z  ac y  z  z  p  n  k  y  z  p  t  s  t  z  f  cs y  l  d  qj a  '
    + 'g  y  l  ca l  l  y  y  y  s  l  q  q  n  l  d  z  cs s  cs a  d  s  g  b  r  s  z  j  s  j  y  r  c  g  q  c  n  h  m  m  x  z  c  y  o  x  y  c  q  j  p  e  h  w  n  c  d  oh g  j  l  g  m  q  w  j  h  c  s  t  n  e  s  q  p  w  m  r  d  s  z  z  l  '
    + 'y  q  p  z  x  y  x  d  q  g  t  p  b  f  bf h  h  d  w  z  b  z  x  h  q  e  e  xd z  s  x  k  h  t  e  x  gk l  t  xh y  d  n  n  n  h  y  l  p  m  z  h  x  l  b  l  b  m  l  s  f  h  s  y  g  g  b  h  y  j  t  x  g  l  m  c  z  y  d  q  d  q  n  g  '
    + 'd  n  l  n  g  z  w  y  q  e  q  a  j  n  y  t  l  x  a  n  z  d  h  x  x  t  w  w  j  h  q  q  d  w  z  b  c  h  y  q  z  l  x  q  g  z  g  l  y  d  q  tc n  t  a  d  y  z  z  c  k  y  z  y  m  h  y  h  h  j  z  w  s  x  h  d  n  l  y  s  c  q  y  dcs'
    + 'p  s  y  w  y  n  x  j  c  h  t  y  h  q  s  y  h  x  m  c  h  rn g  j  p  w  q  z  l  w  jl s  n  s  g  n  n  b  a  l  c  z  m  t  j  c  j  k  t  s  n  x  l  x  h  h  g  o  x  z  c  p  d  m  h  g  t  y  n  j  x  hy m  r  l  x  j  k  x  h  fm q  x  c  '
    + 'd  x  w  z  p  c  k  c  z  c  d  y  t  x  q  h  l  xs h  y  x  n  s  y  y  d  z  z  n  hy h  j  y  a  y  k  y  p  d  x  d  d  n  p  y  z  n  d  h  t  ho xh y  d  p  c  j  j  c  n  n  t  l  h  b  y  n  y  h  m  h  z  l  l  n  n  m  y  l  l  l  m  d  c  '
    + 'p  p  x  m  x  d  k  y  c  y  d  l  t  x  c  h  h  z  n  xa c  l  c  c  l  y  l  z  s  x  n  j  z  z  l  n  n  n  h  y  n  t  k  y  j  p  y  c  h  e  g  w  t  g  j  r  g  t  g  y  h  h  l  g  c  w  y  qj k  p  y  y  e  tsgt  t  t  l  h  y  l  l  y  t  '
    + 't  y  l  n  y  y  q  q  zs d  q  n  n  n  m  j  z  x  t  q  f  k  d  f  b  x  d  j  j  d  j  p  t  q  z  w  t  j  y  f  l  q  g  x  b  l  z  f  h  z  a  n  p  n  j  k  l  c  c  y  h  d  z  f  g  y  d  g  c  y  x  s  n  h  d  n  d  n  a  x  x  b  p  b  '
    + 'y  y  h  x  c  c  p  f  q  y  j  j  d  l  x  j  z  l  n  b  j  y  d  wy j  s  c  w  j  l  z  k  z  d  t  c  s  b  k  d  y  z  z  q  j  n  k  k  n  j  g  y  ew g  l  n  y  n  a  c  n  t  c  h  b  l  g  z  b  y  m  j  r  ea g  z  y  h  e  y  b  j  m  c  '
    + 't  a  f  z  j  z  h  g  c  j  n  l  g  h  d  w  x  j  j  k  y  y  k  s  s  m  w  c  t  q  z  l  p  b  z  d  t  w  c  x  z  a  g  y  k  w  x  l  n  l  c  p  b  c  l  l  o  q  m  m  z  s  l  b  c  d  z  k  d  c  z  j  g  q  j  d  c  y  td z  q  n  z  q  '
    + 's  s  b  p  k  d  f  q  d  z  z  s  dh d  t  dy m  f  h  t  d  y  c  n  a  q  q  k  y  p  d  j  y  x  t  l  j  hp d  r  q  x  l  m  k  y  d  r  n  l  k  l  y  t  w  hp l  l  r  l  l  c  x  y  l  b  n  n  z  y  m  z  z  h  k  h  x  k  s  m  z  s  y  g  '
    + 'x  f  n  b  s  q  l  z  x  n  n  x  y  m  d  q  n  g  q  m  m  c  z  g  g  bt t  y  b  n  y  j  b  em d  p  j  x  d  n  h  k  s  b  h  f  d  s  b  a  w  p  w  a  j  l  d  y  j  s  f  h  b  l  c  d  q  j  n  c  x  f  j  h  d  f  j  x  w  z  p  k  z  y  '
    + 'p  c  y  z  y  n  x  f  f  y  d  b  z  z  n  y  t  x  z  e  m  b  s  e  h  x  f  z  n  b  f  l  z  r  s  y  q  z  j  r  t  j  g  s  k  j  g  j  j  n  z  j  x  h  g  j  k  y  m  l  p  y  y  y  x  c  g  q  s  h  x  s  c  x  m  n  m  k  l  c  d  k  n  y  '
    + 'p  s  z  h  z  p  t  x  w  y  w  x  y  y  s  l  j  c  q  x  z  d  l  a  e  l  m  c  p  j  c  l  x  s  q  h  f  w  r  t  f  n  t  n  q  j  j  q  d  x  h  w  l  y  cz c  f  l  ya k  y  y  n  l  d  x  n  h  y  y  n  c  j  t  y  w  t  r  m  d  r  q  n  w  '
    + 'q  c  m  f  j  d  x  z  h  m  a  y  x  n  w  z  q  ts x  t  l  m  r  s  p  w  w  j  h  n  b  x  t  g  z  y  y  r  r  l  m  p  a  m  k  q  z  y  c  y  m  y  s  n  ty p  l  n  b  p  y  y  x  m  y  k  y  n  g  j  z  c  hr l  z  h  h  a  n  n  b  g  w  q  '
    + 't  z  m  x  x  m  l  l  h  g  d  z  x  n  h  x  h  r  y  c  j  m  f  f  x  y  w  c  f  s  s  q  l  hqxn  n  d  y  c  a  n  n  m  t  c  j  c  y  p  n  x  n  y  t  y  c  n  m  n  s  x  n  d  l  y  l  y  l  j  n  l  x  y  s  s  q  m  l  l  y  z  l  j  z  '
    + 'x  s  t  n  c  s  m  c  j  y  n  z  l  x  b  n  n  y  l  r  q  t  r  y  y  j  z  g  h  s  y  t  s  c  q  g  x  z  b  s  h  m  k  cs z  y  q  h  z  j  n  b  h  q  s  n  j  n  z  y  b  k  n  j  q  h  s  n  s  w  x  k  h  j  y  y  b  q  c  b  f  l  d  p  '
    + 'z  f  k  jq z  x  s  d  d  j  e  e  s  s  y  l  x  x  n  wy l  mp w  w  w  y  d  k  z  g  g  g  g  g  x  b  j  t  d  s  c  x  n  x  n  m  l  p  t  f  x  l  c  x  j  j  l  j  sz x  n  w  x  l  e  n  n  l  r  w  h  s  c  n  y  b  y  a  w  j  e  f  w  q  '
    + 'q  j  z  z  y  j  g  x  b  l  t  q  f  t  p  y  k  q  p  t  l  c  n  n  x  t  x  n  h  k  l  e  f  d  l  l  e  g  q  y  m  s  a  w  h  m  l  j  t  k  y  n  l  y  j  e  y  b  q  f  n  l  y  x  h  d  s  c  t  g  h  x  y  wy l  k  x  q  c  t  n  h  j  l  '
    + 'm  k  k  z  g  y  g  l  l  l  d  c  y  d  h  z  w  p  j  z  j  d  y  z  z  h  y  y  f  q  d  t  y  z  s  e  z  k  l  y  m  g  j  h  t  w  y  z  l  jh y  y  w  z  c  s  k  q  q  t  d  x  w  c  d  r  j  a  l  w  q  b  d  q  y  n  c  n  n  s  z  j  l  n  '
    + 'c  d  c  d  td l  z  z  a  c  q  q  z  z  d  d  x  y  b  l  x  c  b  q  j  y  l  z  l  l  j  d  z  jq g  y  q  y  j  z  y  x  n  y  y  y  e  x  j  x  k  s  d  a  z  n  r  d  l  z  y  y  y  n  j  l  sx l  l  y  x  j  c  y  k  y  n  q  c  c  l  d  d  n  '
    + 'y  y  y  n  y  g  h  j  c  l  n  n  n  q  z  z  y  j  x  j  n  f  z  d  n  f  p  z  h  d  d  m  f  m  y  y  p  q  j  r  s  s  q  z  s  q  d  g  p  z  s  w  d  s  q  d  h  z  x  w  y  b  p  n  g  p  dt m  j  t  h  z  s  b  g  z  m  b  j  c  z  h  b  b  '
    + 'n  m  q  d  f  m  b  cd m  c  j  x  l  j  b  g  j  t  z  ga m  q  d  y  b  j  n  y  c  t  y  z  t  z  x  t  g  k  pm y  b  b  c  l  j  s  s  q  y  m  s  c  x  f  j  h  h  l  xs s  j  p  q  j  j  l  y  d  l  y  c  t  s  x  m  ca w  f  ga n  g  b  q  l  '
    + 'l  l  n  y  x  t  y  l  t  x  d  p  h  n  h  f  j  y  z  y  e  s  e  s  d  h  w  t  q  b  s  j  t  f  d  c  z  y  q  s  x  j  d  z  j  qj b  b  s  dt j  n  f  b  k  n  b  x  dt k  qj h  m  k  w  j  j  l  h  h  y  y  y  h  h  z  y  y  c  d  y  p  c  z  '
    + 't  j  z  w  d  l  f  w  x  w  c  z  j  c  n  c  n  q  z  cz z  l  x  j  j  cs j  b  f  w  p  x  z  p  c  d  z  b  c  c  j  w  m  l  x  b  q  l  r  d  g  r  g  q  d  x  f  y  m  m  w  j  x  y  w  z  y  c  c  t  t  q  h  x  w  x  k  j  y  b  m  p  k  b  '
    + 'n  t  h  j  z  d  t  y  f  x  b  y  x  z  b  h  x  p  x  x  t  n  n  n  c  x  l  h  k  m  z  x  t  d  h  g  x  x  s  h  q  h  c  y  x  g  l  c  x  q  y  p  d  h  n  m  y  j  m  y  y  y  j  zq l  h  q  t  b  q  x  m  y  h  c  w  l  l  c  y  l  n  ew w  '
    + 'c  d  c  m  l  g  g  q  k  t  l  x  k  k  n  d  g  c  y  j  j  l  y  h  q  y  t  n  c  h  x  ew r  z  j  y  d  n  y  d  c  q  c  b  h  z  t  b  x  w  g  w  b  x  h  m  y  kq d  y  c  m  q  k  a  q  y  n  z  s  n  q  g  y  s  q  y  s  h  n  g  j  c  t  '

===== 段落分隔符 =====

應收款登記與查詢

unit yskUnit;

{ ******************************************************* }
{ 應收款登記與查詢 }
{ Developed by Cobian(QQ: 595076941) }
{ 2016.9.23 All Right Reserved. }
{ ******************************************************* }

{
  一、特點:
  1  自動備份,當Edit控制元件的Text改變時不用按儲存按鈕
  就會自動的判斷資料有效性並儲存資料到不同的磁碟分割槽和雲端網盤中

  2、智慧判斷,輸入查詢內容無需按Enter鍵直接查詢。
  procedure TForm1.ComboBox1Change(Sender: TObject);
  類似軟體有 MasterSeeker,Hddb,Everything

  3  介面和資料庫通用化,所有程式之間的差異都透過Ini檔案進行個性化配置

  4  所有操作都有Ini自定義全域性熱鍵(快捷鍵)

  5  Office Excel匯入 匯出

  6  綠色免安裝

  7  許可權控制和資料欄位記錄級別的加密

  8  智慧C/S , 當無法連線MS_SQL_Server伺服器時,給出聲音視窗警告提示並連線本地
  Access資料庫,當可以連線伺服器時同步資料庫。

  9  IntraWeb(B/S)與C/S雙模式互相無縫並行工作,C/S和B/S可以同時進行

  二  更新歷史

  1  2016.9.23  初步建立一個沒有備份錯誤和儲存錯誤的程式。

}

interface

{$IF CompilerVersion >= 21.0}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
{$IFEND}

// --------------------------- 引用段 -------------------------------------------
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, ImgList, ComCtrls, ToolWin,
  Buttons, ComObj, Excel2000, Mask, DBCtrls, shellapi, PYIndexUnit,
  uMyClassHelpers, ExtCtrls, System.ImageList, commctrl, clipbrd;

// --------------------------- 宣告段 --- CnPack熱鍵 Ctrl + D -------------------
type
  TForm1 = class(TfmForm)
    dbgrd1: TDBGrid;
    il1: TImageList;
    ADOConnectionYsk: TADOConnection;
    ADOQueryYsk: TADOQuery;
    DataSourceYsk: TDataSource;
    grp1: TGroupBox;
    grp2: TGroupBox;
    lbl4: TLabel;
    lbl5: TLabel;
    lbl6: TLabel;
    lbl7: TLabel;
    DBEdit_xwxm1: TDBEdit;
    dbedt_xwxm2: TDBEdit;
    dbedt_xwxm3: TDBEdit;
    dbedt_hzxm: TDBEdit;
    lbl8: TLabel;
    lbl10: TLabel;
    lbl11: TLabel;
    lbl12: TLabel;
    lbl13: TLabel;
    dbedt_t: TDBEdit;
    dbedt_q: TDBEdit;
    dbedt_g: TDBEdit;
    dbedt_h: TDBEdit;
    dbedt_dh: TDBEdit;
    lbl15: TLabel;
    lbl16: TLabel;
    lbl19: TLabel;
    lbl20: TLabel;
    dbedt_dxje: TDBEdit;
    dbedt_qtje: TDBEdit;
    DBEditglf4: TDBEdit;
    DBEditglf5: TDBEdit;
    DBEditglf6: TDBEdit;
    DBEditglf7: TDBEdit;
    lbl1: TLabel;
    dbedt_xwxm2py: TDBEdit;
    dbedt_xwxm3py: TDBEdit;
    dbedt_hzxmpy: TDBEdit;
    dtp_nf0: TDateTimePicker;
    dtp_nf1: TDateTimePicker;
    dtp_nf2: TDateTimePicker;
    dtp_nf3: TDateTimePicker;
    dtp_nf7: TDateTimePicker;
    dtp_nf6: TDateTimePicker;
    dtp_nf5: TDateTimePicker;
    dtp_nf4: TDateTimePicker;
    DBEditglf0: TDBEdit;
    DBEditglf1: TDBEdit;
    DBEditglf2: TDBEdit;
    DBEditglf3: TDBEdit;
    Button_About: TButton;
    DBEdit_xwxm1py: TDBEdit;
    ComboBox_Search: TComboBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    BitBtn9: TBitBtn;
    BitBtn10: TBitBtn;
    btn11: TBitBtn;
    Button1: TButton;
    lbl2: TLabel;
    lbl3: TLabel;
    DateTimePicker1: TDateTimePicker;
    lbl14: TLabel;
    dbedt_dz: TDBEdit;
    ADOQueryToExcel: TADOQuery;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ComboBox_SearchExit(Sender: TObject);
    procedure DBEdit_xwxm1Change(Sender: TObject);
    procedure dbedt_xwxm2Change(Sender: TObject);
    procedure dbedt_xwxm3Change(Sender: TObject);
    procedure dbedt_hzxmChange(Sender: TObject);
    procedure dbgrd1TitleClick(Column: TColumn);
    procedure Button_AboutClick(Sender: TObject);
    procedure DBEdit_xwxm1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ComboBox_SearchKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ComboBox_SearchChange(Sender: TObject);
    procedure dbgrd1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure BitBtn8Click(Sender: TObject);
    procedure BitBtn9Click(Sender: TObject);
    procedure BitBtn10Click(Sender: TObject);
    procedure dtp_nf0KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Button1Click(Sender: TObject);
    procedure BitBtn9KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure DataSourceYskDataChange(Sender: TObject; Field: TField);
    procedure dbgrd1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure BitBtn10KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn8KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn7KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure dbedt_dzExit(Sender: TObject);
    procedure dtp1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure dtp_nf0Enter(Sender: TObject);
    procedure dtp_nf1Enter(Sender: TObject);
    procedure dtp_nf2Enter(Sender: TObject);
    procedure dtp_nf3Enter(Sender: TObject);
    procedure dtp_nf4Enter(Sender: TObject);
    procedure dtp_nf5Enter(Sender: TObject);
    procedure dtp_nf6Enter(Sender: TObject);
    procedure dtp_nf7Enter(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure DateTimePicker1Enter(Sender: TObject);
    procedure DateTimePicker1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DateTimePicker1Change(Sender: TObject);
    procedure dtp_nf0Change(Sender: TObject);
    procedure dtp_nf1Change(Sender: TObject);
    procedure dtp_nf2Change(Sender: TObject);
    procedure dtp_nf3Change(Sender: TObject);
    procedure dtp_nf4Change(Sender: TObject);
    procedure dtp_nf5Change(Sender: TObject);
    procedure dtp_nf6Change(Sender: TObject);
    procedure dtp_nf7Change(Sender: TObject);
    procedure dbedt_dhExit(Sender: TObject);
    procedure DBEditglf7Exit(Sender: TObject);
    procedure dbedt_dxjeChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure DataSourceADO();
    procedure FormClean();
    procedure DBGridDataSourceDataChange(Sender: TObject; Field: TField);
    procedure btn11Click(Sender: TObject);
    procedure DateTimePicker1Exit(Sender: TObject);
  public
  private
    FSort, FSortField: string;
    isEditing: Boolean;
    CurrectDay: string;
    procedure myshortcut(var message: TMessage); message WM_HOTKEY;
  end;

  // 按住Ctrl鍵單擊跳轉到過程函式實現處,Shift+Ctrl+數字,定義書籤標籤
  // 當前記錄資料顯示到文字框

procedure SetDBGridFormat;

procedure ADOQueryToDBEdit;
// 當前記錄資料顯示到日期框

procedure ADOQueryToDateTimePicker;
// 當前記錄資料顯示到表格

procedure DataSourceToDBGrid;
// 資料查詢控制元件連線到資料連線控制元件

procedure ADOConnactionToADOQuery;
// 設定資料控制元件是否可以編輯

procedure SetControlsEnableEdit(isEdit: Boolean);

procedure MDBToADOConnection;

procedure SetNavigatorBitBtnBofEof();





https://www.cnblogs.com/delphixx/p/18361337





var
  Form1: TForm1;
  i: Integer;
  id: Integer; // 全域性熱鍵ID

  // ---------------------------- 實現段 --- 熱鍵Ctrl + Shift + 數字定義標籤-------

implementation

uses
  AboutUnit, MyClass;
{$R *.dfm}

function ToExcel(sfilename: string; ADOQuery: TADOQuery): Boolean;
const
  xlNormal = -4143;
var
  y: Integer;
  tsList: TStringList;
  s, filename: string;
  aSheet: Variant;
  excel: OleVariant;
  savedialog: tsavedialog;
begin
  result := true;
  try
    excel := CreateOleObject('Excel.Application');
    excel.workbooks.add;
  except
    // screen.cursor:=crDefault;
    showmessage('無法呼叫Excel!');
    exit;
  end;
  savedialog := tsavedialog.Create(nil);
  savedialog.filename := sfilename; // 存入檔案
  savedialog.Filter := 'Excel檔案(*.xls)|*.xls';
  if savedialog.Execute then
  begin
    if FileExists(savedialog.filename) then
      try
        if application.messagebox('該檔案已經存在,要覆蓋嗎?', '詢問',
          mb_yesno + mb_iconquestion) = idyes then
          DeleteFile(PChar(savedialog.filename))
        else
        begin
          excel.Quit;
          savedialog.free;
          // screen.cursor:=crDefault;
          exit;
        end;
      except
        excel.Quit;
        savedialog.free;
        screen.cursor := crDefault;
        exit;
      end;
    filename := savedialog.filename;
  end;
  savedialog.free;
  if filename = '' then
  begin
    result := true;
    excel.Quit;
    // screen.cursor:=crDefault;
    exit;
  end;
  aSheet := excel.Worksheets.Item[1];
  tsList := TStringList.Create;
  // tsList.Add('查詢結果'); //加入標題

  s := ''; // 加入欄位名
  for y := 0 to ADOQuery.fieldCount - 1 do
  begin
    s := s + ADOQuery.Fields.Fields[y].FieldName + #9;
    application.ProcessMessages;
  end;
  tsList.add(s);
  try
    try
      ADOQuery.First;
      while not ADOQuery.Eof do
      begin
        s := '';
        for y := 0 to ADOQuery.fieldCount - 1 do
        begin
          s := s + ADOQuery.Fields[y].AsString + #9;
          application.ProcessMessages;
        end;
        tsList.add(s);

        ADOQuery.next;
      end;
      Clipboard.AsText := tsList.Text;
    except
      result := false;
    end;
  finally
    tsList.free;
  end;

===== 段落分隔符 =====

刪除空子目錄

REM S-MIR-刪除空目錄-迴圈列舉遍歷刪除空子目錄
REM 注意:批次刪除空目錄時源目錄與目標目錄必需完全相同

for /d %%i in (S:\張三的檔案\C盤文件備份\ABC\123\*.*) do (
rem echo %%i
RoboCopy.exe  "%%i" "%%i" *.* /S /MOVE /MT:128 /R:0 /W:0
)



https://www.cnblogs.com/delphixx/p/18361337

===== 段落分隔符 =====

複製D盤文件表格圖片

%~DP0RoboCopy.exe  "D:\\" "S:\張三的檔案\C盤文件備份\123456" *.docx *doc *.xlsx *.xls *.pdf *.jpg *.ahk /S /COPY:DAT /MT:128 /MAX:105000000 /MIN:1000 /R:0 /W:0 /NS /NC /NFL /NDL /NP /NJH /NJS



https://www.cnblogs.com/delphixx/p/18361337

===== 段落分隔符 =====

相關文章