Articles of shell

在Windows系统中recursion重命名文件夹和文件

我有以下文件夹结构: Top Folder -> SubFolder1 -> MyFolder_Latest -> MyFile_Latest.txt -> SubFolder2 -> MyFolder_Latest -> MyFile_Latest.txt -> SubFolder3 -> MyFolder_Latest -> MyFile_Latest.txt 我希望更改上面给出的不同子文件夹中的文件夹和文件。 所有的文件夹和文件都有相同的名称,我想更改为以下内容: Top Folder -> SubFolder1 -> myfolder -> myfile.txt -> SubFolder2 -> myfolder -> myfile.txt -> SubFolder3 -> myfolder -> myfile.txt 基本上在这里做两件事:a)从所有的文件和文件夹名称中删除_Latest。 b)将所有文件夹和文件的大小写转换为小写 任何人有什么想法如何在Windows中实现上述? 我的系统不允许安装UNIX,我不能将这些文件复制到UNIX系统,因为我们的networking目前不在任何UNIX盒子上提供SCP或FTP权限:-( 另外,如果有人在UNIX中有一个合适的解决scheme,我可以尝试将这些文件夹复制到一张DVD上,然后尝试在UNIX机器上运行这些命令:-)

你如何在Windows中运行Vim?

我刚刚安装了gVim,并尝试使用通常用于Linux的“vim myfile.java”技术来打开文件并对其进行编辑。 但不幸的是,这似乎并不奏效。 我也尝试过“gvim myfile.java”,但是这也不起作用。 有谁知道如何使用Windows Powershell或其他技术来打开vim(并在linux中使用它)?

如何在Delphi中模拟下拉窗体?

如何创build一个使用Delphi的“下拉式”窗口? 除此之外的一切都是研究工作; 与答案无关。 研究努力 做一个适当的下拉式需要很多件小心的一起工作。 我假设人们不喜欢这个棘手的问题,而是我问了七个不同的问题。 每一个问题的一小部分。 接下来的一切都是我在解决这个看似简单的问题上的研究努力 。 请注意下拉窗口的定义特征: 1.下拉菜单扩展到“所有者”窗口之外 2. “所有者”窗口保持焦点; 下拉式从来没有窃取焦点 3.下拉窗口有一个阴影 这是我在WinForms中询问的同一个问题的Delphi变体: 如何模拟WinForms中的下拉窗口? WinForms中的答案是使用ToolStripDropDown class 。 这是一个助手类,可以将任何forms变成下拉菜单。 让我们在Delphi中做 我将首先创build一个艳丽的下拉表单,作为例子: 接下来,我将放下一个button,这将是我点击使下拉菜单出现的东西: 最后,我会连线一些初始代码,以显示它需要在OnClick中的表单: procedure TForm3.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var frmPopup: TfrmPopup; pt: TPoint; begin frmPopup := TfrmPopup.Create(Self); //Show the form just under, and right aligned, to this button […]

如何recursion地展开一个环境variables?

假设如下: echo %MY_ENV_VAR%扩展为%USERPROFILE%\some\path echo %USERPROFILE%展开为C:\Users\MyUser 我的目标是在以下path创build一个空文件: C:\Users\MyUser\some\path\FOO.txt 。 我尝试了以下命令: type nul > %MY_ENV_VAR%\FOO.txt 不幸的是,输出是一个错误状态系统找不到指定的path。 我很确定这是因为shell不是recursion地扩展%MY_ENV_VAR% ,而是试图find一个以%USERPROFILE%开头的文字path。 我怎样才能最好地完成我的目标?

在unix shell脚本中查找一个文件的内容到另一个文件中

我正在使用下面的shell脚本来查找另一个文件的内容: #!/bin/ksh file="/home/nimish/contents.txt" while read -r line; do grep $line /home/nimish/another_file.csv done < "$file" 我正在执行脚本,但不显示csv文件的内容。 我的contents.txt文件中还包含了编号,例如"08915673"或"123223" ,它们也出现在csv文件中。 我有什么问题吗?

获取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; 谢谢!

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

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

在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命令提示符中使用shebang / hashbang

我正在使用服务脚本来在Windows 7上提供Node.js的目录。它在MSYS shell或sh运行良好,因为我已经把node.exe和服务脚本放在了我的〜/ bin中在我的PATH上),而input“serve”是因为它是Shebang ( #! )指令,它告诉shell使用节点运行它。 但是,Windows命令提示符似乎不支持没有* .bat或*。exe扩展名的普通文件,也不支持shebang指令。 是否有任何registry项或其他黑客,我可以强制从内置的cmd.exe这种行为? 我知道我可以写一个简单的batch file来运行它,但是我想知道是否可以在一个内置的fasion中完成,所以我不必为每个脚本写一个脚本? 更新:其实,我在想,是否有可能为所有'找不到的文件'编写一个默认的处理程序,我可以自动尝试在sh -c执行? 谢谢。

我如何逃避一个任意的string作为Windows中的命令行参数?

我有一个string列表,我想在一个Windows命令行调用中将这些string作为parameter passing。 对于简单的字母数字string,只需逐字传递: > script.pl foo bar baz yes no foo bar baz yes no 我明白,如果一个参数包含空格或双引号,我需要反斜杠 – 转义双引号和反斜杠,然后双引号。 > script.pl foo bar baz "\"yes\"\\\"no\"" foo bar baz "yes"\"no" 但是,当我尝试通过字面百分号的参数时,发生这种情况: > script.pl %PATH% C:\Program Files\PHP\;C:\spaceless\perl\bin\;C:\Program Files\IBM\Java60\bin; (…etc.) 双引号不起作用: > script.pl "%PATH%" C:\Program Files\PHP\;C:\spaceless\perl\bin\;C:\Program Files\IBM\Java60\bin; (…etc.) 也不反斜杠(注意输出中反斜杠是如何存在的): > script.pl \%PATH\% \%PATH\% 而且,对于反斜杠转义的反斜线,这些规则是不一致的: > script.pl "\\yes\\" \\yes\ > […]