根据银灿IS903的CD-ROM盘符打开光盘文件索引数据库Index-Your-Files-2024年8月15日
根据银灿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__请插入U盘,3
ExitApp
===== 段落分隔符 =====
iyf-bat.bat
rem 搜索并且运行银灿IS903量产U盘CD-ROM中的Index-Your-Files的批处理脚本源码文件
@echo off &color 0a &setlocal enabledelayedexpansion
rem 有些Windows PE系统不支持 'fsutil fsinfo drives' 命令参数,所以这里循环测试枚举遍历所有盘符
rem for /f "tokens=1,* delims= " %%a in ('fsutil fsinfo drives') do (set "code=%%b" && set "code=!code::\=!")
rem for %%a in (!code!) do (
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 A B) do (
if exist %%a:\01-IYF\Read-IYF.txt (
del /q C:\APP\IYF\iyf.ini
erase /q C:\APP\IYF\iyf.ini
del /q C:\APP\IYF\iyf.ini
erase /q C:\APP\IYF\iyf.ini
del /q C:\APP\IYF\iyf.ini
erase /q C:\APP\IYF\iyf.ini
rem 用7z-SFX-Builder-v2.5.0.5制作的IYF配置文件INI自解压释放程序
c:\app\iyf\ini-%%a.exe
exit
)
)
rem 用Delphi7制作的能在5秒钟后定时自动关闭的没有找到CD-ROM的提示窗口
start /wait c:\app\iyf\show-msg.exe
rem 没有找到CD-ROM时自解压空白的IYF配置文件INI并运行Index-Your-Files软件
c:\app\iyf\ini-empty.exe
exit
rem echo.!code!
rem pause.
https://www.cnblogs.com/delphixx/p/18361337
===== 段落分隔符 =====
;
;
;
===== 段落分隔符 =====
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量产U盘的CD-ROM,请插入U盘');
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-量产U盘
%~dp0Oscdimg -u1 -b %~dp007-UltraISO_bif.bif -w1 -c -h -l晓亮的U盘_HyperBackup_1980.01.15 -m -t1/15/1980,11:11:11 -y6 %~dp0..\ D:\01-量产U盘\DVD-ISO-rq1-%y%.%mo%.%d%_%h%-%m%-%s%.iso
exit
rem %~dp0Oscdimg -u1 -b %~dp007-UltraISO_bif.bif -os -w1 -c -h -l晓亮的U盘_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 命令行选项
===== 段落分隔符 =====
打开量产U盘更新专用文件夹.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:\量产U盘更新 (
start %%a:\量产U盘更新
exit
)
)
rem echo.!code!
rem pause.
===== 段落分隔符 =====
打开量产U盘更新专用文件夹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:\量产U盘更新 (
start %%a:\量产U盘更新
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、智能判断,输入查询内容无需按回车键直接查询。
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
===== 段落分隔符 =====