首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Inno Setup仅排除树根目录中的一个子目录,但不排除树中具有相同名称的所有其他子目录

Inno Setup是一款用于Windows平台上创建安装程序的免费工具。它提供了一个灵活的脚本语言,可以用来定义安装程序的各个方面,包括文件安装位置、注册表项、快捷方式等。

在使用Inno Setup进行安装程序开发时,如果想要排除树根目录中的一个子目录,但不排除树中具有相同名称的其他子目录,可以通过使用ExcludeDirs指令来实现。ExcludeDirs指令用于指定在安装过程中需要排除的目录。

以下是一个示例的Inno Setup脚本,展示了如何使用ExcludeDirs指令来实现上述需求:

代码语言:txt
复制
[Files]
Source: "C:\MyApp\*"; DestDir: "{app}"; Flags: recursesubdirs

[InstallDelete]
Type: filesandordirs; Name: "{app}\SubDirToExclude"; Components: main

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssInstall then
    DelTree(ExpandConstant('{app}\SubDirToExclude'), True, True, True);
end;

上述脚本中,[Files]节用于指定需要安装的文件和目录,Source字段指定源目录,DestDir字段指定安装目录,并使用recursesubdirs标志来包含源目录下的所有子目录。

[InstallDelete]节用于指定在卸载时需要删除的文件和目录。在这个例子中,我们使用Type字段指定同时删除文件和目录,Name字段指定需要删除的目录,Components字段指定与该目录关联的组件。

[Code]节用于包含自定义的脚本代码。在这个例子中,我们使用CurStepChanged函数来在安装过程的ssInstall步骤中删除排除的目录。

请注意,这只是一个简单示例,实际使用时可能需要根据具体需求进行调整。

对于Inno Setup的更多信息和使用方法,可以参考腾讯云开发者文档中的相关章节:Inno Setup官方文档

希望这个回答能够满足你的需求,如果还有其他问题,欢迎继续提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何复制 OR 删除 200 万个小文件,而且电脑不卡?

: 参数解释: /S :: 复制子目录但不复制空子目录。.../E :: 复制子目录,包括空子目录。 /LEV:n :: 复制源目录前 n 层。 /Z :: 在可重新启动模式下复制文件。 /B :: 在备份模式下复制文件。.../A+:[RASHCNET] :: 将给定属性添加到复制文件。 /A-:[RASHCNET] :: 从复制文件删除给定属性。 /CREATE :: 创建目录和长度为零文件。.../IA:[RASHCNETO] :: 包含具有任意给定属性集文件。 /XA:[RASHCNETO] :: 排除具有任意给定属性集文件。.../XO :: 排除较旧文件。 /XX :: 排除多余文件和目录。 /XL :: 排除孤立文件和目录。 /IS :: 包含相同文件。 /IT :: 包含已调整文件。

2.9K51

robocopy用法,数据库局域网备份

目标:目标目录(驱动器:\路径或\\服务器\共享\路径) 文件:要复制文件(名称/通配符: 默认为 "*.*") 复制选项 /S:复制子目录但不复制空子目录。.../E:复制子目录,包括空子目录。 /LEV:n:复制源目录前 n 层。 /Z:在可重新启动模式下复制文件。 /B:在备份模式下复制文件。.../A+:[RASHCNET]:将给定属性添加到复制文件。 /A-:[RASHCNET]:从复制文件删除给定属性。 /CREATE:创建目录和长度为零文件。.../M:复制具有存档属性文件并重置存档属性。 /IA:[RASHCNETO]:包含具有任意给定属性集文件。 /XA:[RASHCNETO]:排除具有任意给定属性集文件。.../s是表示包括 除空文件下所有子目录,如果没有则复制d:\work下文件而不包括子目录

1.6K50
  • robocopy用法,数据库局域网备份

    目标:目标目录(驱动器:\路径或\\服务器\共享\路径) 文件:要复制文件(名称/通配符: 默认为 "*.*") 复制选项 /S:复制子目录但不复制空子目录。.../E:复制子目录,包括空子目录。 /LEV:n:复制源目录前 n 层。 /Z:在可重新启动模式下复制文件。 /B:在备份模式下复制文件。.../A+:[RASHCNET]:将给定属性添加到复制文件。 /A-:[RASHCNET]:从复制文件删除给定属性。 /CREATE:创建目录和长度为零文件。.../M:复制具有存档属性文件并重置存档属性。 /IA:[RASHCNETO]:包含具有任意给定属性集文件。 /XA:[RASHCNETO]:排除具有任意给定属性集文件。.../s是表示包括 除空文件下所有子目录,如果没有则复制d:\work下文件而不包括子目录

    2.3K20

    如何使用.gitignore忽略Git文件和目录

    问号,[]方括号等通匹配符,一个.gitignore文件示例,自定义排除忽略规则,全局.gitignore配置,调试.gitignore文件,显示所有被忽略文件 应该忽略哪些文件 被忽略文件通常是特定于平台文件或从构建系统自动创建文件...如果模式不是以斜杠开头,则它将匹配任何目录子目录文件和目录。 如果模式以斜杠结尾,则匹配目录。当目录被忽略时,其所有文件和子目录也将被忽略。 文件名 最直接模式是没有任何特殊字符文件名。...开头模式将否定先前模式。此规则例外是,如果排除了其父目录,则重新包含文件。例如模式 *.log与!error.log这将会匹配所有以.log作为扩展名文件,但不匹配error.log。...但是,你可以在仓库不同子目录创建多个.gitignore文件。.gitignore文件模式相对于文件所在目录匹配。 在子目录文件定义模式优先于高于根目录模式。...本地.gitignore文件与其他开发人员共享,并且应包含对存储库所有其他用户有用模式。 个人忽略规则 应在.git/info/exclude文件配置特定于本地仓库且不应分发到其他仓库模式。

    8.9K10

    SonarQube系列-通过配置扫描分析范围,聚焦关键问题

    等 sonar.exclusions=**/*Bean.java,**/*DTO.java # 排除src/main/java/org/sonar目录所有文件 # 但不包括其子目录文件 sonar.exclusions...=src/main/java/org/sonar/* # 排除bank目录及其子目录所有文件 sonar.exclusions=bank/**/* # 排除bank目录及其子目录所有.cs文件...」(键)”设置为sonar.test.inclusions =src/**/test/**/*结果是要扫描源文件集是下所有内容_减去所有不是_子目录内容:src test 如果在文件配置范围,...java:Naming匹配java存储库规则名称包含字符串Naming所有规则。 您可以在规则定义中找到规则定义完全限定规则 ID 和规则名称。...**ignore**.multicriteria相同:每个条目都包含一个规则键模式和一个文件路径模式。 不同是,在这种情况下,这意味着指定规则将应用于指定文件集。

    1.1K20

    xcopy-参数详解

    但不能拷贝隐藏文件和系统文件; (2)使用时源盘符、源目标路径名、源文件名至少指定一个; (3)选用/S时对源目录下及其子目录所有文件进行COPY。...然后,“xcopy”会将所有指定文件复制到新目录。默认情况下,“xcopy”将提示您指定“Destination”是文件还是目录。 /s 复制非空目录子目录。...如果省略“/s”,则“xcopy”将在单个目录工作。 /e 复制所有子目录,包括空目录。将“/e”与“/s”和“/t”命令行选项一起使用。 /t 只复制子目录结构(即目录),不复制文件。...如果指定字符串 “.obj”,则排除具有 .obj 扩展名所有文件。 • 使用“/z” 如果在复制过程丢失连接(例如,如果用于连接服务器脱机),复制过程将在重新建立连接后恢复。...• 比较“xcopy”和“diskcopy” 如果磁盘子目录包含文件,要将其复制到具有不同格式磁盘,请使用“xcopy”命令,而不要使用“diskcopy”。

    2.9K20

    .gitignore 不生效问题

    ,用于否定模式;先前模式排除所有匹配文件将再次包含在内。如果排除了该文件目录,则无法重新包含该文件。...例如,模式doc/frotz/ 匹配doc/frotz目录但不匹配a/doc/frotz目录;但是frotz/匹配,frotz 并且a/frotz这是一个目录所有路径都是.gitignore文件相对路径..." ** " 模式与完整路径名匹配两个连续星号(“ ”)可能具有特殊含义: 前导“ **”后跟斜杠表示在所有目录均匹配。...其他连续星号被视为常规星号,并将根据之前规则进行匹配。 例子 hello.匹配名称以开头任何文件或文件夹hello。...foo/将匹配目录foo及其下路径,但不匹配常规文件或符号链接foo doc/frotz和/doc/frotz在任何.gitignore文件中都具有相同效果。

    3.5K21

    定时备份文件下文件包括子文件和父文件到指定目

    source 指定要复制文件。   destination 指定新文件位置和/或名称。   /A 只复制有存档属性集文件,   但不改变属性。   ...例如,指定如 \obj\ 或 .obj 字符串会排除   目录 obj 下面的所有文件或带有   .obj 扩展名文件。   /P 创建每个目标文件前提示。   .../S 复制目录子目录,除了空。   /E 复制目录子目录,包括空。   与 /S /E 相同。可以用来修改 /T。   /V 验证每个新文件。   /W 提示您在复制前按键。   .../G 允许将没有经过加密文件复制到   不支持加密目标。   /H 也复制隐藏和系统文件。   /R 覆盖只读文件。   /T 创建目录结构,但不复制文件。   不包括空目录子目录。.../T /E 包括   空目录子目录。   /U 只复制已经存在于目标文件。   /K 复制属性。一般 Xcopy 会重置只读属性。   /N 用生成短名复制。

    81010

    Linux操作系统下 chkconfig 命令详解

    以非递归方式查找具有特定字符串所有文件 第一个命令示例将在/etc/目录所有文件搜索字符串artful,同时排除任何子目录: grep -s artful /etc/* /etc/lsb-release...输出显示文件名以及打印包含请求字符串实际行。 递归地查找具有特定字符串所有文件 以上命令省略了所有子目录。 递归搜索意味着遍历所有子目录。...以下命令将在/etc/目录所有文件(包括所有子目录搜索字符串artful: grep -R artful /etc/* 搜索包含特定单词所有文件 上面的grep命令示例列出了包含字符串artful...使用grep -w选项只显示一个特定单词: grep -Rw artful /etc/* 列出包含特定文字文件名称 上述命令可能会产生不必要输出。...grep -Ril artful /etc/* 包含或排除搜索特定文件名称 使用grep命令也可以只包含特定文件作为搜索一部分。

    1.3K00

    PythonDistutils模块

    要实现此目的,那么包名和目录名必须能够相互对应,比如包名是distutils,则意味着在发布目录setup脚本所在目录)下存在distutils子目录;再比如在setup脚本packages =...比如,如果包中有一个包含数据文件子目录,源码如下: setup.py src/ mypkg/ __init__.py module.py.../build 很容易看出,上面的命令意思是:包含所有的.txt文件;包含examples目录所有.txt或者.py文件;排除所有匹配examples/sample?/build目录。...所有这些过程,都是在标准规则执行之后执行,所以可以在模板文件中排除标准集合文件。...如果将源文件放到发布根目录子目录,比如源码setup.py src/ foo.py bar.py 这种情况依然可以用声明root包方式来发布

    5.7K40

    iOS_沙盒文件系统

    Preferences: 4、tmp: 1、AppName.app: 这是应用程序捆绑包,此目录包含应用程序及其所有资源。...该目录内容由iTunes和iCloud备份。 1)Inbox 其他应用分享到本app文件会存储在该目录。 您应用可以读取和删除此目录文件,但不能创建新文件或写入现有文件。...一般将文件放在几个标准子目录。iOS通常使用Application Support和Caches子目录;但是,您可以创建自定义子目录。 将Library子目录用于您不希望向用户公开任何文件。...该目录所有内容都应该放在一个自定义子目录,该子目录名称应为您应用捆绑软件标识符或公司名称。 在iOS,此目录内容由iTunes和iCloud备份。...必须将所有可以重新创建或下载文件排除在备份之外。这对于大型媒体文件尤为重要。如果您应用程序下载了视频或音频文件,请确保它们不包含在备份。 2)Caches: 存放数据缓存文件。

    2.2K10

    Linux:chattr命令和chgrp命令

    d:将文件或目录排除在倾倒操作之外。 i:不得任意更动文件或目录。 s:保密性删除文件或目录。 S:即时更新文件或目录。 u:预防以外删除。...语法 chattr [-RV][-v][+/-/=][文件或目录...] 参数 -R 递归处理,将指定目录所有文件及子目录一并处理。   ...在UNIX系统家族里,文件或目录权限掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录所属群组,设置方式采用群组名称或群组识别码皆可。...-h或--no-dereference  只对符号连接文件作修改,而不更动其他任何相关文件。   -R或--recursive  递归处理,将指定目录所有文件及子目录一并处理。   ...--reference=  把指定文件或目录所属群组全部设成和参考文件或目录所属群组相同。   --version  显示版本信息。

    1.6K90

    Windows运维:XCOPY命令使用笔记

    一、命令介绍在Windows操作系统,XCOPY命令是一款功能强大文件复制命令行工具。它支持从一个目录复制文件或文件夹到另一个目录,同时提供了非常全面的选项以满足各种复制需求。...三、常用选项 ● /S:复制目录及其子目录文件,但不复制空目录。 ● /E:复制目录及其子目录,包括空目录。 ● /I:生成要复制文件列表,但不主动复制文件。...”文件夹及其子文件夹所有文件复制到D盘“合并文件夹”文件夹,覆盖同名文件时不提示用户确认。...命令示例:XCOPY C:\源文件夹 D:\目标文件夹 /S /Y /EXCLUDE:C:\排除文件列表.txt解释:此命令将C盘“源文件夹”及其子文件夹所有文件复制到D盘“目标文件夹”,但排除...排除文件列表文件每一行都应包含一个排除文件名或通配符。五、总结XCOPY命令是Windows操作系统中一款非常实用文件复制工具。

    2.9K41

    Python包管理工具setuptools

    运行如下命令: >>python setup.py sdist #打包后格式为tar.gz/zip 当前目录下新增一个dist目录,里面会有一个同name值相同文件包。...现在可以介绍一下刚刚setup()参数了 name 包名 version 版本号 packages 所包含其他包 要想发布到PyPI,需要增加别的参数,这个可以参考官方文档例子了。...在demo执行mkdir demo,再创建一个目录,在这个demo目录创建一个__init__.py文件,表示这个目录一个包,然后写入: #!...假设我们把所有静态文件都放在”static”子目录下,现在项目结构如下: setup-demo/ ├ setup.py # 安装文件 ├ MANIFEST.in #...find_packages()”方法可以限定你要搜索路径,比如使用”find_packages(‘src’)”就表明只在”src”子目录下搜索所有的Python包。

    1.7K20

    【每天一个 Linux 命令】tree命令

    tree 命令是一个小型跨平台命令行程序,用于递归地以树状格式列出或显示目录内容。它输出每个子目录目录路径和文件,以及子目录和文件总数摘要。...参数说明: -a 显示所有文件和目录。 -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。 -C 在文件和目录清单加上色彩,便于区分各种类型。 -d 显示目录名称而非内容。...-x 将范围局限在现行文件系统,若指定目录某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。 安装之后,您可以通过下面的使用案例进一步学习tree命令用法。...tree -f -L 2 下面是将目录最大显示深度设置为3使用案例: tree -f -L 3 若要显示与通配符内容匹配文件,请使用-P选择并指定您匹配内容。...tree -f -pug -h -D 另一个有用选项是–du,它将显示指定目录所占用磁盘空间。

    1.1K30

    linux zip 命令详解(2)

    -o 以压缩文件内拥有最新更改时间文件为准,将压缩文件更改时间设成和该文件相同。  -q 不显示指令执行过程。  -r 递归处理,将指定目录所有文件和子目录一并处理。 ...-V 保存VMS操作系统文件属性。  -w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。  -x 压缩时排除符合条件文件。  -X 不保存额外文件属性。 ...-p 与-c参数类似,会将解压缩结果显示到屏幕上,但不会执行任何转换。 -t 检查压缩文件是否正确。 -u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件其他文件解压缩到目录。...-v 执行是时显示详细信息。 -z 显示压缩文件备注文字。 -a 对文本文件进行必要字符转换。 -b 不要对文本文件进行字符转换。 -C 压缩文件文件名称区分大小写。...# unzip -t large.zip 6.我用-v选项发现music.zip压缩文件里面有很多目录子目录,并且子目录其实都是歌曲mp3文件,我想把这些文件都下载到第一级目录,而不是一层一层建目录

    4.9K60

    Linux进阶命令-rsync

    -u(更新模式):该参数用于同步源文件中新增或更新文件,而不处理目标文件已存在且没有变化文件。 --delete(删除模式):该参数用于在目标目录删除与源目录不同文件。...这对于保持目标目录与源目录完全一致很有用。 --exclude(排除模式):该参数用于指定要排除文件或目录,以避免将其同步到目标目录。...归档模式会保持文件所有属性,包括权限、所有者、所属组、时间戳等,并且会递归地复制子目录和链接。 -p参数保持文件权限。...它会确保目标文件和源文件具有相同权限,但不会保持其他属性,例如所有者、所属组和时间戳。 -o参数保持文件所有者。它会确保目标文件和源文件具有相同所有者,但不会保持其他属性。...-t参数保持文件时间戳。它会确保目标文件和源文件具有相同修改时间和访问时间,但不会保持其他属性。 -g参数保持文件所属组。它会确保目标文件和源文件具有相同所属组,但不会保持其他属性。

    10710

    bat自动复制文件命令_批处理命令删除文件夹

    : start d:\TheWorld\TheWorld.EXE "e:\My documents\我有一个恋爱.htm" 所有程序引号不能是全角,必须用半角格式,所以输入引号前最好关闭汉字输入系统...例如,指定如 \obj\ 或 .obj 字符串会排除 目录 obj 下面的所有文件或带有 .obj 扩展名文件。 /P 创建每个目标文件前提示。 /S 复制目录子目录,除了空。.../E 复制目录子目录,包括空。 与 /S /E 相同。可以用来修改 /T。 /V 验证每个新文件。 /W 提示您在复制前按键。 /C 即使有错误,也继续复制。.../G 允许将没有经过加密文件复制到 不支持加密目标。 /H 也复制隐藏和系统文件。 /R 改写只读文件。 /T 创建目录结构,但不复制文件。不 包括空目录子目录。.../T /E 包括 空目录子目录。 /U 只复制已经存在于目标文件。 /K 复制属姓。一般 Xcopy 会重设只读属姓。 /N 用生成短名复制。

    3.3K20

    linux两台服务器之间传输文件和文件夹

    1.命令格式:rcp [参数] [源文件] [目标文件] 2.命令功能: rcp命令用在远端复制文件或目录,如同时指定两个以上文件或目录,且最后目的地是一个已经存在目录,则它会把前面指定所有文件或目录复制到该目录...3.命令参数: 各选项含义: -r:递归地把源目录所有内容拷贝到目的目录。要使用这个选项,目的必须是一个目录。 -p:试图保留源文件修改时间和模式,忽略umask。...当希望将remote_hostname上remote_file放到其他目录(远程主目录除外)下时,才需要为其指定完整(绝对)路径。...被复制到远程子目录 test3下,名称仍为 test1 。...如果提供了远程主机名,rcp 将把 test1 复制到远程主目录下,名称仍为 test1 。 还可以在目的目录包含文件名。

    7.1K71
    领券