shell中ftp -in

shell中ftp -in,第1张

-n禁止第一次连接的时候自动登陆,即不使用netrc文件

-i 在多个文件传输期间关闭交互提示,相当于FTP中prompt命令关闭;

整个FTP过程中所有的命令都从文件$FTPFILE中获取,并将过程追加记录到$LOGFILE中

我通过FileTypeRegister静态类来完成这些功能。首先,将注册需要用到的信息封装成FileTypeRegInfo,定义如下:

public class FileTypeRegInfo

{

/// <summary>

/// 目标类型文件的扩展名

/// </summary>

public string ExtendName ; //"xcf"

/// <summary>

/// 目标文件类型说明

/// </summary>

public string Description ; //"XCodeFactory项目文件"

/// <summary>

/// 目标类型文件关联的图标

/// </summary>

public string IcoPath ;

/// <summary>

/// 打开目标类型文件的应用程序

/// </summary>

public string ExePath ;

public FileTypeRegInfo()

{

}

public FileTypeRegInfo(string extendName)

{

thisExtendName = extendName ;

}

}

FileTypeRegister类主要是 *** 作注册表中的内容,实现如下:

/// <summary>

/// FileTypeRegister 用于注册自定义的文件类型。

/// zhuweisky 20050831

/// </summary>

public class FileTypeRegister

{

RegisterFileType#region RegisterFileType

/// <summary>

/// RegisterFileType 使文件类型与对应的图标及应用程序关联起来。

/// </summary>

public static void RegisterFileType(FileTypeRegInfo regInfo)

{

if(RegistryHelperFileTypeRegistered(regInfoExtendName))

{

return ;

}

string relationName = regInfoExtendNameSubstring(1 ,regInfoExtendNameLength-1)ToUpper() + "_FileType" ;

RegistryKey fileTypeKey = RegistryClassesRootCreateSubKey(regInfoExtendName) ;

fileTypeKeySetValue("" ,relationName) ;

fileTypeKeyClose() ;

RegistryKey relationKey = RegistryClassesRootCreateSubKey(relationName) ;

relationKeySetValue("" ,regInfoDescription) ;

RegistryKey iconKey = relationKeyCreateSubKey("DefaultIcon") ;

iconKeySetValue("" ,regInfoIcoPath) ;

RegistryKey shellKey = relationKeyCreateSubKey("Shell") ;

RegistryKey openKey = shellKeyCreateSubKey("Open") ;

RegistryKey commandKey = openKeyCreateSubKey("Command") ;

commandKeySetValue("" ,regInfoExePath + " %1") ;

relationKeyClose() ;

}

/// <summary>

/// GetFileTypeRegInfo 得到指定文件类型关联信息

/// </summary>

public static FileTypeRegInfo GetFileTypeRegInfo(string extendName)

{

if(! RegistryHelperFileTypeRegistered(extendName))

{

return null ;

}

FileTypeRegInfo regInfo = new FileTypeRegInfo(extendName) ;

string relationName = extendNameSubstring(1 ,extendNameLength-1)ToUpper() + "_FileType" ;

RegistryKey relationKey = RegistryClassesRootOpenSubKey(relationName) ;

regInfoDescription = relationKeyGetValue("")ToString() ;

RegistryKey iconKey = relationKeyOpenSubKey("DefaultIcon") ;

regInfoIcoPath = iconKeyGetValue("")ToString();

RegistryKey shellKey = relationKeyOpenSubKey("Shell") ;

RegistryKey openKey = shellKeyOpenSubKey("Open") ;

RegistryKey commandKey = openKeyOpenSubKey("Command") ;

string temp = commandKeyGetValue("")ToString() ;

regInfoExePath = tempSubstring(0 ,tempLength-3) ;

return regInfo ;

}

/// <summary>

/// UpdateFileTypeRegInfo 更新指定文件类型关联信息

/// </summary>

public static bool UpdateFileTypeRegInfo(FileTypeRegInfo regInfo)

{

if(! RegistryHelperFileTypeRegistered(regInfoExtendName))

{

return false ;

}

string extendName = regInfoExtendName ;

string relationName = extendNameSubstring(1 ,extendNameLength-1)ToUpper() + "_FileType" ;

RegistryKey relationKey = RegistryClassesRootOpenSubKey(relationName ,true) ;

relationKeySetValue("" ,regInfoDescription) ;

RegistryKey iconKey = relationKeyOpenSubKey("DefaultIcon" ,true) ;

iconKeySetValue("" ,regInfoIcoPath);

RegistryKey shellKey = relationKeyOpenSubKey("Shell") ;

RegistryKey openKey = shellKeyOpenSubKey("Open") ;

RegistryKey commandKey = openKeyOpenSubKey("Command" ,true) ;

commandKeySetValue("" ,regInfoExePath + " %1") ;

relationKeyClose() ;

return true ;

}

/// <summary>

/// FileTypeRegistered 指定文件类型是否已经注册

/// </summary>

public static bool FileTypeRegistered(string extendName)

{

RegistryKey softwareKey = RegistryClassesRootOpenSubKey(extendName);

if(softwareKey != null)

{

return true ;

}

return false ;

}

#endregion

}

要注意的是commandKeySetValue("" ,regInfoExePath + " %1") ;其中" %1"表示将被双击的文件的路径传给目标应用程序,这样在双击axcf文件时,XCodeFactory才知道要打开哪个文件,所以应用程序的Main方法要被改写为带有参数的形式,就像下面的样子:

[STAThread]

static void Main(string[] args)

{

if((args!= null) && (argsLength > 0))

{

string filePath = "" ;

for(int i=0 ;i<argsLength ;i++)

{

filePath += " " + args[i] ;

}

MainFormXcfFilePath = filePathTrim() ;

}

ApplicationRun(new MainForm());

}

关于自定义文件类型的注册,本文实现的是最基本的功能,如果需要更多的高级功能,也可以类推实现之。

FileDialog fd=new FileDialog(shell ,SWTOPEN|SWTMULTI);

String[] filter = {“jpg;png;gif”};//指定文件格式

fdsetFilterExtensions(filter);

String fileName=fdopen();

Systemoutprintln(“得到文件路径:”+fileName);

#/bin/bash

for a in {110};do

echo -n "$a"

echo -n A:

for i in {14};do

echo -en "$i"

done

echo

if [ $a -le 9 ];then

echo -n ' B:'

elif [ $a -gt 9 ];then

echo -n ' B:'

fi

for j in {58};do

echo -n "$j"

done

echo

done

结果的是从linux拷贝过来的,所以可能显示不出来效果,建议你复制代码到linux下试试

[root@localhost ~]# bash absh

1A:1234

B:5678

2A:1234

B:5678

3A:1234

B:5678

4A:1234

B:5678

5A:1234

B:5678

6A:1234

B:5678

7A:1234

B:5678

8A:1234

B:5678

9A:1234

B:5678

10A:1234

B:5678

我在里面加了个if语句,如果前面的数字小于等于9的时候,echo B前面加n个空格

如果数字大于9的时候,echoB前面加再多加两个空格,

条件可以不断增加。

我也是新手,希望能够给分。

#!/bin/bash

mkdir m{14}

for i in `seq 1 4`;do

cp m${i}txt m${i}

done

#对给点分=^_^=

一、语法结构

二、说明

(1)[ condition ] (注意condition前后要有空格)

非空返回true,可使用$验证(0为true,>1为false) 如:[ hadoop ] 返回true

空返回false 如:[ ] 返回false

(2)[ condition ] && echo OK ||echo notok 可以多条件,条件满足,执行后面的语句

三、整数比较

四、字符串比较

五、权限判断

六、文件系统类型判断

实例1 特权用户的高内存占用查询

案例2 远程登录的用户的详情查询

以上就是关于shell中ftp -in全部的内容,包括:shell中ftp -in、c#自定义文件类型、如何使用FileDialog指定文件格式选择文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9652683.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存