我正在尝试为 Windows (7) 资源管理器创建一个自定义上下文菜单条目,它将通过一个命令发送所有选定的项目。
我在MSDN 文档中读到过关于MultiSelectModelPlayer值的内容,但这似乎不起作用。这就是我尝试过的:
这对于一件物品来说效果很好。
但是,当选择了许多项目时,将为每个项目启动一次脚本。相反,我希望只有一个实例来接收所有选定的项目。
我尝试在“MYVERB”和“COMMAND”下添加字符串值“MultiSelectModel”->“Player”,但行为没有改变。
我想要做的事情是否仅通过脚本和注册表就可以实现?我究竟做错了什么?
windows windows-explorer context-menu shell-script desktop-customization
我在目录中有一系列文件,我需要使用脚本执行操作。操作完成后,我想保留文件已处理的日志,以便下次运行脚本时,它不会再次尝试执行操作。
所以可以说我可以找到所有应该像这样处理的文件:
for i in `find /logfolder -name '20*.log'` ; do
process_log $i
echo $i >> processedlogsfile
done
Run Code Online (Sandbox Code Playgroud)
所以我有一个包含我处理过的日志的文件,我的目标是修改 for 循环,这样这些处理过的日志就不会被第二次处理。
每次手动扫描似乎效率低下,尤其是当处理的日志文件变大时:
if grep -iq "$i" processdlogfiles ; then continue; fi
Run Code Online (Sandbox Code Playgroud)
如果在设置 for 循环时可以排除这些文件,那就太好了。
请注意,有问题的操作系统是 linux 衍生产品,一个管理设备,具有有限的工具集(attr例如没有命令),因此无法安装其他实用程序(这是可能的,但不是一个选项)。不过,大多数常见的 bash shell 命令都可用。
此外,已处理文件的文件名和位置必须保持原样 - 不能更改它们以反映其处理状态
有没有办法从 tmux 会话中找出有关任何窗格的当前工作目录的信息?
我想编写一个 bash 脚本,将当前窗格的目录更改为另一个窗格的目录,即使该窗格中已经运行了一个程序或脚本。
我想做的方法是导航到窗格 1,然后转到窗格 2,按一个热键,窗格 2 现在将更改为与窗格 1 相同的密码。
在 bash 脚本内部,我动态下载一个文件,因此我用它wget --content-disposition来确保文件名正确,但是我将如何检索wget保存它的文件的名称?
在 Bash 中,我可以做这样的事情
somecmd << END
a lot of
text here
END
Run Code Online (Sandbox Code Playgroud)
直接从脚本向命令提供输入。我需要在 CMD.exe 批处理文件(.cmd 脚本)中做同样的事情。是否可以?
我正在尝试在 Windows 的 shell 中的“FOR /F”中运行以下命令...
wmic process where ParentProcessId=%%PID%% get ProcessId
该=ParentProcessId和PID%%的保持gettings替换一个空格。
结果是:
for /F "usebackq" %b in (wmic process where ParentProcessId %PID% get ProcessId) do (.
我将如何转义此字符 = 符号?
在文件中/etc/passwd我们有所谓的GECOS fields(代表“通用电气综合操作系统”),即:
username:password:userid:groupid:gecos:home-dir:shell
Run Code Online (Sandbox Code Playgroud)
其中GECOS分为:
:FullName,RoomAddress,WorkPhone,HomePhone,Others:
Run Code Online (Sandbox Code Playgroud)
并被Others分成任意多的逗号:
:FullName,RoomAddress,WorkPhone,HomePhone,Other1,Other2,Other3:
Run Code Online (Sandbox Code Playgroud)
在man chfn页面中可以阅读:
另一个字段用于存储其他应用程序使用的记帐信息。
现在,应用程序开发人员(我很感兴趣C language,system calls和/或bash script),这就是抓住这个信息的最佳方式?
仅考虑Bash环境,鉴于该finger命令无法显示others字段(或者至少我不知道如何显示),还有哪些其他命令可以显示?我知道这chfn不仅是展示,而且是允许它们被改变。如果只是将它输出到stdout怎么办?
我有 2 个 shell 脚本,file1.sh 和 file2.sh
文件1.sh
#!/usr/bin/env bash
export var1="/data/share"
export var2='password'
echo "Hello"
Run Code Online (Sandbox Code Playgroud)
文件2.sh
#!/usr/bin/env bash
source file1.sh
echo $var1
echo $var2
Run Code Online (Sandbox Code Playgroud)
当我执行 file2.sh 时,我得到以下输出
Hello
/data/share
password
Run Code Online (Sandbox Code Playgroud)
但我的预期输出是
/data/share
password
Run Code Online (Sandbox Code Playgroud)
file1.sh 在 file2.sh 中引用时被执行。如何在 file2.sh 中单独导入变量而不执行 file1.sh?
我有以下声明:
TOKENARRAY=($TOKEN)
Run Code Online (Sandbox Code Playgroud)
$TOKEN 是一个数值变量。
如果我试试这个:
echo ${TOKENARRAY[0]}
Run Code Online (Sandbox Code Playgroud)
它向我显示了一个空字符串。
如果我做:
echo ${TOKENARRAY:0}
Run Code Online (Sandbox Code Playgroud)
它向我展示了令牌
但真正奇怪的是,如果我这样做:
echo ${TOKENARRAY[1]}
Run Code Online (Sandbox Code Playgroud)
它向我展示了令牌。
这里发生了什么?这个脚本应该在 bash 中工作,但它在 zsh 中不起作用。
在我的脚本中,我向用户发送通知并提示他输入一些数据。之后我想清除之前发送的通知。通知应保留在托盘中,直到用户输入数据。
目前我正在使用notify-send,但只能通过超时才能清除。
我想要的是这样的:
send-notification --title="Hey, enter some data pls" --id=999
prompt-to-enter-data
delete-notification --id=999
Run Code Online (Sandbox Code Playgroud)
我正在使用 linux Mint 20。带有 cinnamon DE (v4.6.6)。
notify-osd未安装。