如果我遍历字符串中的所有字符,我知道如何做到这一点,但我正在寻找一个更优雅的方法.
当我尝试将字符串限制为10个字符(长度不是10个或更多字符)时,substring会抱怨.我知道我可以测试长度,但我想知道是否有一个cmdlet可以满足我的需要.
PS C:\> "12345".substring(0,5)
12345
PS C:\> "12345".substring(0,10)
Exception calling "Substring" with "2" argument(s): "Index and length must refer to a location within the string.
Parameter name: length"
At line:1 char:18
+ "12345".substring( <<<< 0,10)
Run Code Online (Sandbox Code Playgroud) 我想写一个能够存储声音模式的程序,例如火车口哨,号角(哔哔声)......通过麦克风听声音......然后在听到声音时采取一些动作.我知道一个小蟒蛇并且很久以前在VB编程了.主要是我是Oracle,PLSQL的人.该程序将需要适度的UI.
什么是解决此问题的最佳解决方案组合(语言,第三方附加组件......)?
我正在开发一个应用程序,并具有格式的URL www.example.com/some_url/some_parameter/some_keyword
.我在设计上知道这些URL有一个最大长度(并且仍然有效).我应该为每个请求验证URL长度,以防止缓冲区溢出/注入攻击吗?我相信这是显而易见的,但我不是安全专家,所以也许我错过了一些东西.
如何在PowerShell中执行等效操作?请注意,我需要每个文件的完整路径.
# ksh
for f in $(find /app/foo -type f -name "*.txt" -mtime +7); do
mv ${f} ${f}.old
done
Run Code Online (Sandbox Code Playgroud)
我和Get-ChildItem玩了一会儿,我确信答案就在某个地方.
只是想更好地理解为什么下面的第二项不起作用.第一项很简单,第二项似乎更清晰,第三项似乎不直观.
# My path includes pscp so this works.
pscp.exe -i $PRIVATE_KEY $file ${PROXY_USER}@${PROXY_HOST}:${PROXY_DIR}
# This does not work. I get unexpected token error. Why? What does that mean?
$PUTTY_PATH\pscp.exe -i $PRIVATE_KEY $file ${PROXY_USER}@${PROXY_HOST}:${PROXY_DIR}
# & is required to solve the problem.
& "$PUTTY_PATH\pscp.exe" -i $PRIVATE_KEY $file ${PROXY_USER}@${PROXY_HOST}:${PROXY_DIR}
Run Code Online (Sandbox Code Playgroud) 我有一个常见的变量,我的应用程序称为"电子邮件".我还想在其中一个脚本中使用"电子邮件"作为参数的名称.我需要在同一个脚本中引用这两个变量的值.理想情况下,有一种方法可以使用模块/命名空间或其他东西进行引用,也许还有,但我不知道.你可以看到我是如何破解它的,但它很丑陋,容易出错.有没有更好的办法?
# PowerShell v1
# Some variable names are very common.
param ($emails)
# My Hack
# We need to save current value so we have it after we source in variables below.
$emails0=$emails
# Below is going to load a variable called "emails" which will overwrite parm above.
. C:\load_a_bunch_of_global_variables.ps1
Run Code Online (Sandbox Code Playgroud) 我有一个固定长度的字符串,这是一个数字.当我将字符串分配给变量时,它被赋值为8而不是10.为什么?我怎么阻止它?
$ i=10
$ ((i=i+1))
$ echo $i
11 # Right answer
$ i=000010
$ ((i=i+1))
$ echo $i
9 # Wrong answer
Run Code Online (Sandbox Code Playgroud)
更新:答案确认数字正在转换为八进制,并且需要删除前导零.这是sed
命令.
echo"000010"| sed's/0*//'