草庐IT

c - 如何验证文件名在 Windows 中是否有效?

是否有一个WindowsAPI函数,我可以将一个字符串值传递给它,它会返回一个指示文件名是否有效的值?我需要验证文件名是否有效,我正在寻找一种无需重新发明轮子即可完成此操作的简单方法。我直接使用C语言工作,但目标是Win32API。如果没有这样的内置函数,我将如何着手编写自己的函数?Windows是否遵循确定文件名有效性的通用算法或模式? 最佳答案 问题并不那么简单,因为这取决于您认为什么是“有效文件名”。与UNC路径一起使用的WindowsAPI可以让您愉快地创建许多在正常路径中被视为无效的名称,因为前缀\\?\您是在告诉Wind

windows - 基于文件名批量创建文件夹,并将多个相关文件移动到创建的文件夹

多年来,我一直将所有电影以及所有其他电影都放到一个文件夹中。经过几次挫折后,我现在意识到保留nfo和art的备份将节省我的时间,并在添加新的Kodi设置(电视,平板电脑,笔记本电脑等)时保持数据库的可用性。因此,我试图基于电影的文件名批量创建一个文件夹,并将多个相关文件移动到创建的文件夹中。为了清楚起见,我想为影片创建一个文件夹名称,并将所有相关文件放入该文件夹。电影文件名的格式可以更改,因为它们的信息不尽相同,例如,导演剪辑,未经编辑的终极版本,这些信息都令人沮丧[]。在任何情况下,主影片名称都是最小的文件名,并且我永远都不想用该文件名中包含“[Extra]”的文件来命名该文件夹。一

windows - 用于从文件名中删除特殊字符的批处理文件脚本 (Windows)

我有一大组文件,其中一些文件名中包含特殊字符(例如ä、ö、%等)。我想要一个脚本文件来遍历这些文件并重命名它们以删除特殊字符。我真的不介意它做什么,但它可以用下划线替换它们,例如Störung%20.doc将重命名为St_rung_20.doc按优先顺序:Windows批处理文件使用cscript(vbs)运行的Windows脚本文件可以从命令行运行的第三方软件(即不需要用户交互)另一种语言脚本文件,我必须为其安装额外的脚本引擎背景:我试图在Windows上使用GnuPG加密这些文件,但它似乎无法使用--encrypt-files选项处理文件名中的特殊字符。

windows - 如何使用批处理将工作目录转换为 8.3 短文件名?

这个问题在这里已经有了答案:GetDOSpathinsteadofWindowspath(12个答案)关闭5年前。我正在编写构建脚本,如果用户构建脚本的目录包含空格,一切都会崩溃。为了解决这个问题,我想到了使用8.3文件名,这样drive:\Documentsandsettings\whatever就变成了drive:\Docume~1\whatever。当前目录可以通过查询环境变量%CD%找到。如何将%CD%转换为短文件路径?

Windows 按文件名批量复制文件

我要复制的文件位于“C:\Report\”,我要复制的文件名类似于“rptXXXX.txt”。我想做的是写一个批处理,复制文件名以“rpt”开头的文件。目标文件夹是“F:\Project\Report\”。 最佳答案 这应该可以,您可以使用*作为通配符:xcopye:\foo\rpt*.txte:\foo2或者在你的情况下,xcopyC:\Report\rpt*.txtF:\Project\Report\ 关于Windows按文件名批量复制文件,我们在StackOverflow上找到一个

windows - 如何从文件名中删除空格(批量)

如何在Windows中批量删除数千个文件中的空格(而不是替换为下划线)?我可以从DOS命令执行此操作吗?目前:fileone.mp3filetwo.mp3所有文件需要变成:fileone.mp3filetwo.mp3 最佳答案 这是一个脚本,可以有效地批量重命名文件,从名称中删除所有空格。:renameNoSpace[/R][FolderPath]@echooffsetlocaldisableDelayedExpansionif/i"%~1"=="/R"(set"forOption=%~1%2"set"inPath=")else(s

windows - 使用 cmd.exe 将长文件名转换为短文件名 (8.3)

我正在尝试在Windows上将长文件名转换为短文件名(8.3)。带有命令行参数的批处理文件按预期工作:short.bat:@echoOFFecho%~s1调用short.batC:\DocumentsandSettings\User\NTUSER.DAT返回C:\DOCUM~1\USER\NTUSER.DAT但是,我不喜欢为此使用额外的.bat文件。我宁愿用ruby​​脚本中的整个命令调用cmd.exe。我该怎么做?作为中间步骤,我尝试在批处理文件中对路径进行硬编码,但这不起作用:short1.bat:@echoOFFSETfilename="C:\DocumentsandSettin

windows - 如何在文件夹的所有文件名中用下划线替换所有空格?

我正在尝试重命名文件夹中的所有文件(所有.exe文件)。我想用下划线替换所有空格,例如qweqweqweasd.exe到qwe_qwe_qwe_asd.exe。我需要使用命令行执行此操作。我尝试了很多我在互联网上什至在这个网站上找到的可能的解决方案,但我无法让它工作。我还需要在“一行”/“一个命令”中执行此操作,但我会接受所有可行的答案。 最佳答案 一个类轮cmd/e:on/v:on/c"for%fin("**.exe")do(set"n=%~nxf"&set"n=!n:=_!"&ren"%~ff""!n!")"生成一个cmd实例,

.net - 使用 .NET 在 Windows 上获取实际文件名(使用适当的大小写)

我想做与thisquestion中完全相同的事情:Windowsfilesystemiscaseinsensitive.How,givenafile/foldername(e.g."somefile"),Igettheactualnameofthatfile/folder(e.g.itshouldreturn"SomeFile"ifExplorerdisplaysitso)?但我需要在.NET中执行此操作并且我想要完整路径(D:/Temp/Foobar.xml而不仅仅是Foobar.xml)。我看到FileInfo类上的FullName没有用。 最佳答案

windows - 如何在 Windows 中获取文件名中带有冒号的文件?

我从上传文件名中带有冒号的文件的客户那里收到错误,即C:/uploads/test:doc.html我假设某些Unix或Linux系统正在生成该文件,但我不确定用户如何使用无效文件名保存它们。我编写了一段代码,应该在上传时重命名文档。我的问题是我无法测试它,因为我无法在Windows上获取文件名中包含冒号的文件。 最佳答案 我发现了一个与冒号非常相似的字符,"꞉"它是一个unicode字符,称为修饰字母冒号。它没有像全角冒号那样的空格,与常规冒号几乎完全相同,但符号有效。您可以从上方复制并粘贴它,也可以使用代码点U+A789