首页
学习
活动
专区
工具
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 :: 包含已调整的文件。

3K51

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文件中配置特定于本地仓库且不应分发到其他仓库的模式。

    9.2K10

    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.2K20

    xcopy-参数详解

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

    3.1K20

    .gitignore 不生效问题

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

    3.6K21

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

    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 用生成的短名复制。

    81410

    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

    Python的Distutils模块

    要实现此目的,那么包名和目录名必须能够相互对应,比如包名是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.8K40

    iOS_沙盒文件系统

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

    2.2K10

    Windows运维:XCOPY命令使用笔记

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

    3.3K41

    Linux:chattr命令和chgrp命令

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

    1.6K90

    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

    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

    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进阶命令-rsync

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

    14410

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

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

    9.1K71
    领券