Articles of shell

string比较不能在PowerShell函数中工作 – 我做错了什么?

我试图做一个别名的git commit也将日志logging到一个单独的文本文件。 但是,如果git commit返回"nothing to commit (working directory clean)" ,它不应该logging任何东西到单独的文件。 这是我的代码。 git commit别名的作品; 输出到文件的作品。 但是,无论从git commit返回什么,它都会logging消息。 function git-commit-and-log($msg) { $q = git commit -a -m $msg $q if ($q –notcontains "nothing to commit") { $msg | Out-File w:\log.txt -Append } } Set-Alias -Name gcomm -Value git-commit-and-log 我正在使用PowerShell 3。

如何find只有两个层次的子目录?

我有一个脚本列出了一个文件夹中的所有子目录,并将它们放在一个文件中: dir "\\test\e$\1" /a:d /s /b | sort>"C:\folders.txt 效果看起来像这样: \\test\e$\1 \\test\e$\1\target1 \\test\e$\1\target1\in \\test\e$\1\target1\out \\test\e$\1\target2 \\test\e$\1\target2\in \\test\e$\1\target2\out \\test\e$\1\target3 \\test\e$\1\target3\in \\test\e$\1\target3\out \\test\e$\2 \\test\e$\2\target1 \\test\e$\2\target1\in \\test\e$\2\target1\out \\test\e$\2\target2 \\test\e$\2\target2\in \\test\e$\2\target2\out \\test\e$\2\random_folder_without_in_subfolder 我真正需要的是: \\test\e$\1\target1 \\test\e$\1\target2 \\test\e$\1\target3 \\test\e$\2\target1 \\test\e$\2\target2 甚至更好(如果可能)在这种forms(分隔符:“ |: ”): \\test\e$\1\target1|:\\test\e$\1\target2|:\\test\e$\1\target3|:\\test\e$\2\target1|:\\test\e$\2\target2

如何获得我的文件关联在单个程序实例中打开多个文件?

我在Windowsregistry中为我的程序build立了一个文件扩展名。 在registry中,在shell / open / command下,我有: "C:\MyProgramPath\MyProgram.exe" "%1" 这对我来说很好。 当有人点击与我的应用程序相关联的一个或多个文件时,我的应用程序正确地打开文件,但是每个文件都在单独的程序实例中打开。 有什么办法可以做到这一点,并打开一个程序实例中的所有文件?

获取shell图标的最快方法

我正在使用此代码来获取shell图标(在Windows资源pipe理器中显示的图标)。 有没有人有更快的方式获得这些图标的经验? SHGetFileInfo似乎很慢。 procedure TForm2.Button1Click(Sender: TObject); var FileInfo: TSHFileInfo; begin FillChar(FileInfo, SizeOf(FileInfo), 0); if SHGetFileInfo(PChar('c:\windows\'), 0, FileInfo, SizeOf(FileInfo), SHGFI_ICON or SHGFI_SMALLICON or SHGFI_SYSICONINDEX) <> 0 then DrawIconEx(Canvas.Handle, 10, 10, FileInfo.hIcon, 0, 16, 16, 0, DI_IMAGE or DI_MASK); end; 谢谢!

有没有办法阻止_popen打开一个dos窗口?

我正在使用_popen来启动一个进程来运行一个命令并收集输出 这是我的C ++代码: bool exec(string &cmd, string &result) { result = ""; FILE* pipe = _popen(cmd.c_str(), "rt"); if (!pipe) return(false); char buffer[128]; while(!feof(pipe)) { if(fgets(buffer, 128, pipe) != NULL) result += buffer; } _pclose(pipe); return(true); } 有没有办法做到这一点,没有一个DOS窗口打开(因为它目前在_popen声明)?

有没有办法使用Perl脚本来更改Windows文件夹图标?

有没有办法使用Perl脚本来更改Windows文件夹图标? 我的意图是将“xxx_documents”文件夹的普通图标更改为其他图标。 我必须以这样的方式来运行脚本,以便照顾整个驱动器。 该驱动器包含许多文件夹。 我必须search名为“文件”(例如“xxx_documents”或简单地“文件”)的每个文件夹,并从"%SystemRoot%\system32\SHELL32.dll"库中将其图标更改为一个。 在Perl中可能吗? 感谢所有帮助我的人。

在Windows中使用C#为特定文件types集成Shell

所以我search了一个如何使用C#将应用程序集成到应用程序(将其添加到右键单击菜单)的指南,但是我找不到如何为特定的文件types执行此操作。 我知道这是可能的,因为WinRar这样做。 那我该怎么做呢?

在explorer-shell-extention中创build一个子菜单?

我创build了一个更改文件名的小脚本(用_replace空格等)。 我用参数来控制这个脚本。 现在我想将其包含到我的资源pipe理器的shell扩展,所以我试图添加以下registry项: HKEY_CLASSES_ROOT\*\shell\edit filname method a\command HKEY_CLASSES_ROOT\*\shell\edit filname method b\command HKEY_CLASSES_ROOT\*\shell\edit filname method c\command 等等。 它工作正常,但我想打包所有这些方法一起进入一个子菜单。 有点像“打开”选项。 那可能吗?

在Windows中用冒号(“:”)作为文件名

我创build的文件名称是“asdf:qwer”。 'asdf'文件被创build,并且我input了一些单词。 “asdf”的容量是0,Hex没有内容。 但我可以得到的话。 他们从哪里来? 什么是冒号(:)在Windowsshell的function?