小编npo*_*aka的帖子

如何在Windows命令行中使用不同的颜色进行回显

我知道该color bf命令设置整个命令行窗口的颜色,但我想以不同的颜色打印一行.

windows command-line colors batch-file

191
推荐指数
10
解决办法
22万
查看次数

检测当前Windows版本是32位还是64位

信不信由你,我的安装程序太旧了,它没有选择检测64位版本的Windows.

是否有Windows DLL调用或(甚至更好)一个环境变量,可以为Windows XP和Windows Vista提供该信息?

一种可能的解决方

我看到维基百科声称64位版本的Windows XP和Windows Vista都有一个独特的环境变量:%ProgramW6432%所以我猜测在32位Windows上它是空的.

此变量指向Program Files目录,该目录存储Windows和其他所有已安装的程序.英语系统的默认设置是C:\Program Files.在64位版本的Windows(XP,2003,Vista)中,还有%ProgramFiles(x86)%默认值C:\Program Files (x86)%ProgramW6432%默认值C:\Program Files.在%ProgramFiles%本身取决于请求该环境变量中的进程是否为本身的32位或64位(这是由Windows的上-Windows 64位重定向引起的).

windows 64-bit batch-file

62
推荐指数
7
解决办法
12万
查看次数

如何在不使用任何外部工具的情况下使用批处理文件压缩(/ zip)和解压缩(/解压缩)文件和文件夹?

我知道这里有很多类似的问题,但我对答案(甚至是问题)都不满意.

主要目标是兼容性 - 它应该适用于最广泛的Windows机器(包括XP,Vista,Win2003 - 它们共同占据了大约20%的Windows共享),并且生成的文件应该可以在Unix/Mac机器上使用(所以标准存档/压缩格式是优选的).

选项有哪些:

  1. 创建一个实现一些zip算法的批处理.显然这是可能的 - 但只能使用单个文件并使用CERTUTIL进行二进制处理(某些机器默认情况下没有CERTUTIL,并且无法在WinXP Home Edition上安装)
  2. 通过WSH 使用shell.application.根据我的最佳选择.它允许压缩整个目录,并且可以在每台Windows机器上使用
  3. Makecab - 尽管压缩不是那么便携,但它可以在每台Windows机器上使用.一些外部程序如7zip能够提取.CAB内容,但是当需要在Unix/Mac上使用文件时它会不那么方便.并且压缩时单个文件非常简单,保留目录结构需要更多的努力.
  4. 使用.NET Framework - 不是那么好的选项.Form .NET 2.0有 GZipStream但它只允许压缩单个文件..NET 4.5具有Zip功能,但在Vista和XP上不支持.甚至更多 - 默认情况下不会在XP和Win2003上安装.NET,但由于很可能将.NET 2.0升级到4.0,因此它是一个相当大的选择.
  5. Powershell - 因为它依赖于.NET,它具有相同的功能.默认情况下,它不会安装在XP,2003和Vista上,所以我会跳过它.

.net zip batch-file jscript

42
推荐指数
3
解决办法
7万
查看次数

如何在没有第三方工具的情况下将.bat文件"转换"为.exe文件?

有很多理由想要"转换" .bat.exe- 隐藏/混淆实现,密码,资源路径,从批处理文件创建服务......主要是为了让你的工作看起来比实际更复杂和重要是.

不想使用第三方工具的原因也很多.

那么如果你想在.exe不使用外部软件的情况下"转换"批处理文件呢?(转换是引号,因为我认为没有真正的方法将批处理文件编译成可执行文件.有太多滥用的错误技术和广泛使用的错误,我知道的所有工具实际上创建了一个临时.bat文件,然后调用它)

.net batch-file iexpress

39
推荐指数
2
解决办法
6万
查看次数

检查对象是否在对象列表中

由于PowerShell有许多类似SQL查询的cmdlet,是否有一种快速方法可以检查对象是否在Where-Objectcmdlet 的其他对象列表中?

像SQL中的东西:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)
Run Code Online (Sandbox Code Playgroud)

当然我可以写一个简单的子程序,但我只是想知道是否有这样的功能.

powershell

24
推荐指数
1
解决办法
5万
查看次数

CMD命令删除文件并将它们放入回收站?

是否有任何控制台命令"del"从文件夹中删除文件并将它们放入回收站?del命令将删除文件,而不是在回收站中.

console cmd batch-file

21
推荐指数
5
解决办法
3万
查看次数

如何在不使用任何外部工具的情况下下载包含批处理文件的文件?

首先澄清这个问题的目的是HTTP(s)下载.对于FTP,我可能会问(并回答)另一个问题.以下是一些类似的问题 - 但我希望更加准确.

除了排除外部工具,我希望解决方案适用于最广泛类型的Windows机器(包括仍然有足够大份额的XP,Win2003,Vista).另外,作为WSH可能的选项之一,我不喜欢使用临时文件和所有要打包在单个.bat文件中的东西(jscript和vbscript都可以).

什么是可能的方法.

  1. 使用BITSADMIN的 "纯"批处理解决方案- 每台Windows机器上都有一个命令行实用程序.它不是很方便,但它是唯一一个不应该使用其他脚本语言的选项.
  2. 使用WSH - 可能有三种方法 - WinHTTP,MSXML2.XMLHTTP ,InternetExlorer.Application - 它们都是可访问的ActiveX对象,按照我喜欢的顺序排列.WinHTTP和MSXML2.XMLHTTP的功能非常相似,但WinHTTP的声誉是更稳定.InternetExlorer.Application实际上只是可以通过ActiveX对象访问的Internet Explorer,一些UI元素是不可避免的(是吗?)所以我会跳过这个.
  3. 使用.NET - 可以使用Jscript.net创建一个包含所有三个默认.NET编译器(Jscript.net,VB.Net,C#)的混合批处理文件,没有冗余错误消息,所以我更喜欢它.如果我们忽略这样一个事实,即编译的.exe所有代码都在一个文件中,所以根据我的说法,这符合要求:-).使用.NET我们可以使用System.Net.WebClient或System.Net.HttpWebRequest(WebClient)依赖它)或
    System.Web.HttpRequest,但是现在我只发布System.Net.WebClient解决方案.这里也可以使用WSH访问更多相同的ActiveX对象.所以有很多方法可以下载文件与.Net.May将来我会更新我的答案.无论如何只有Webclient是专门为下载而设计的.
  4. 使用powershell - 与.NET具有相同的可能性,但是你可以在所有机器上安装的机会较少.所以我也会跳过这个.

.net wsh batch-file jscript

17
推荐指数
1
解决办法
3万
查看次数

makecab - 从文件夹中的所有文件创建cab文件

我在目录中有大量文件.我试过跟随makecab,但它不包括文件夹中的所有文件到cab文件中.

makecab /d "C:\Users\crtorres\Documents\- SouthPacific Project 2014\- Projects\Sales Doc Center\New Region" test.cab
Run Code Online (Sandbox Code Playgroud)

以下工作但cab文件只有清单文件.makecab manifest.xml test.cab

cab batch-file makecab

16
推荐指数
2
解决办法
6万
查看次数

从字符串而不是从文件导入-Csv?

有没有办法在powershell中从包含字符串的变量创建一个csv对象?目前我需要在临时文件中写入内容然后将其导入csv,我想减少磁盘操作:

$some_string | Set-Content $temp_file
$csv_content=Import-Csv $temp_file
Run Code Online (Sandbox Code Playgroud)

编辑

@Graham Gold,感谢你的答案(我已经为你们两个人设置了+1),但似乎Joey的答案是正确的.这是我的测试:

    $csv_string="
`"col1`" ; `"col2`"
val11 ; val12
val21 ; val22"

$csv_content1 = $csv_string | ConvertFrom-CSV 
$csv_content2 = $csv_string | ConvertTo-CSV 
"
ConvertFrom result:"
$csv_content1
"
ConvertTo result:"
$csv_content2
Run Code Online (Sandbox Code Playgroud)

结果如下:

ConvertFrom result:

H1                                                                             
--                                                                             
col1 ; "col2"                                                                  
val11 ; val12                                                                  
val21 ; val22                                                                  

ConvertTo result:
#TYPE System.String
"Length"
"47"
Run Code Online (Sandbox Code Playgroud)

csv powershell

15
推荐指数
2
解决办法
1万
查看次数

Windows:用于读取可执行文件的版本信息的命令行?

Windows是否有可执行文件,我可以在命令shell中运行,它返回可执行文件(.exe)的版本号?

我看到很多问题显示如何使用不同的语言,并引用第三方软件来编写它,但我找不到一个简单的shell命令来执行它.如果我不需要安装任何东西,还有其他要点.

它必须以普通用户身份运行.不是管理员.

windows command-line version batch-file portable-executable

15
推荐指数
4
解决办法
4万
查看次数