バックスラッシュ
個人用
ひとつのフォルダに必要なデータを
フォルダごと入れる
フォルダ内のjpgのみを処理するプログラム
1
各々ハッシュ値を計算して
jpgファイルと同じフォルダ内に
ハッシュ値を名前としたテキストファイルを作る
2
もしくは、
Excelのテーブルにフォルダパスとハッシュ値を
並べる
1
検索するときは
検索したい画像のハッシュ値を計算して
その値で検索するとテキストファイルが見つかる
2
Excelで検索して隣接のフォルダパスをたどる
>certutil -hashfile TechPjin.jpg MD5
MD5 ハッシュ (ファイル TechPjin.jpg):
6d d9 01 75 10 f0 04 ee e9 47 85 ed 92 de 69 d1
CertUtil: -hashfile コマンドは正常に完了しました。
バッチ
@echo off
echo C:\test 直下のファイルを表示
for %%a in (C:\test\*) do echo %%a
echo C:\test 直下のフォルダを表示
for /D %%a in (C:\test\*) do echo %%a
for /r %a in (C:\test\*.jpg) do echo %a
for /r %a in (C:\test\*.jpg) do certutil -hashfile %a MD5>results.txt
dir /b /s *.jpg
for /r %a in (C:\test\*.jpg) do
dir /b /s %a > results.txt
日本語
/////////////////////////////////////////////////////////////////
//フォント一覧の作成_ver10.jsx
//2013/08/20 12:29 sakai masaki
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
var mm_to_po = 2.834645669;//ミリ数値をポイントに直す
var font_size = 3 * mm_to_po ;//フォントサイズ
var ly_nm_df ="フォント一覧";//layerネームデフォルト
var info_df = "■フォント一覧 総数:";//インフォメーションデフォルト
var sample_tt = "サンプル文字";//sampleテキストデフォルト
var sample_df = "test テスト";//sampleテキストデフォルト
var split_cr = " : ";//フォント名とsampleのsplit文字
var font_color = setColor(0,0,0,100); //fontの塗り色 黒
var orikaesi = 100;//ある程度並べたら折り返し
var y_stretch = 0.9;//横並びにするときに大概離れすぎるのでそれの調整、割合
var sort_fg = 1;//並べ替えフラグ 1を設定すると並べ替える
var test_chr ="あ";//日本語検査の為のsample文字
var jap_mk = "■";//日本語フォントだった場合のマーク
var eng_mk = "□";//日本語対応じゃなかった場合のマーク
var tani = "font ";//フォントの単位
var d_sp = "-";//日付の区切り
main();
///////////////////////////////
////////////////////////////////
function main(){
var i = q = retu = cmx = 0;
var wh_mak = "";
var actDoc = activeDocument;
var n = app.textFonts.length;
var new_l = actDoc.layers.add();
var date_info = date_yymmdd(d_sp);
new_l.name = ly_nm_df + n + tani + date_info;
textObj = new_l.textFrames.add();
textObj.contents = info_df + n + tani + date_info;//+ tes_font
textObj.translate(0,font_size );
textObj.textRange.characterAttributes.size = font_size ;
txt = prompt(sample_tt,sample_df );
var font_ar = new Array() ;
for (i = 0; i < n; i++){//n
font_ar[i] = app.textFonts[i].name;
}
if(sort_fg ==1){font_ar.sort();}//並べ替えfont_ar = ar_sort
for (i in font_ar){//n
font_prp = app.textFonts.getByName(font_ar[i]);
textObj = new_l.textFrames.add();
textObj.textRange.characterAttributes.size = font_size ;
textObj.textRange.characterAttributes.fillColor = font_color ; //
textObj.textRange.characterAttributes.textFont = font_prp; // textFont
textObj.contents = test_chr;//一旦sampleテキスト配置
////日本語対応フォントかどうか調べる
g1 = textObj.characters[0].textFont.name ;
if( g1 == font_ar[i] ){ wh_mak = jap_mk ;}
else{ wh_mak = eng_mk ;}
/////
txt01 = font_ar[i] + split_cr + txt ;// font_prp + + app.textFonts[i].style + split_cr+ tes_font
textObj.contents = wh_mak + txt01;
textObj.textRange.characterAttributes.textFont = font_prp; //再設定
textObj.translate(retu,(q * font_size * (-1) ));
//tes_font = textObj.textRange.characterAttributes.font;
if(cmx < font_ar[i].length){cmx = font_ar[i].length;}
q ++;
if(q > orikaesi - 1 && orikaesi > 0 ){
dan = ((cmx + txt.length ) * font_size) * y_stretch;//
retu += dan;
cmx = q = 0;
}
}
return false;
}
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
function setColor(c,m,y,k){
var tmpColor = new CMYKColor();
tmpColor.cyan = c;
tmpColor.magenta = m;
tmpColor.yellow = y;
tmpColor.black = k;
return tmpColor;
}
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
function date_yymmdd(sc){
dd = new Date();
yy = dd.getYear();
mm = dd.getMonth() + 1;
dd = dd.getDate();
if (yy < 2000) { yy += 1900; }
if (mm < 10) { mm = "0" + mm; }
if (dd < 10) { dd = "0" + dd; }
return yy + sc +mm + sc + dd ;
}
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
テキストばらし
/********************************************************
JavaScript for Adobe Illustrator 10 - CS ( Win / Mac )
■■テキストばらし■■
複数行のテキストを改行で別オブジェクトに分割します。
作成者:倉田タカシ 2007_05_01
*******************************************************/
var itemsToSplit = new Array() ; //各テキストを格納
var splitTexts = new Array() ; //各分割テキストの配列を格納
var HorV ;
var txPos ;
var lineHeight ;
var aiVersion = version.slice(0,2);
var crCode = String.fromCharCode(13); //改行コードを指定
var enterCode = String.fromCharCode( 3 ) ;
selectedObj = activeDocument.selection ;
if( selectedObj.length == 0 )
{
alert("まず、改行で分割したいテキストを選択してください。 ( Select texts first. )");
}
else
{
for( i=0; i
{ splitTexts[i][j].top
= splitTexts[i][j-1].top - splitTexts[i][j-1].height }
}
}
else
{
// 縦書きのエリアテキストの場合は、先に幅を決める
if( splitTexts[i][j].kind == TextType.AREATEXT )
{
if( aiVersion == "10" )
{ splitTexts[i][j].textPaths[0].textPathObject.width
= lineHeight * splitTexts[i][j].textRange().textLines.length }
else
{ splitTexts[i][j].textPath.width
= lineHeight * splitTexts[i][j].lines.length }
}
splitTexts[i][j].position
// = [ txPos[0]+(lineHeight**1 , txPos[1] ] ;
= [ txPos[0] + itemsToSplit[i].width - splitTexts[i][j].width , txPos[1] ] ;
if( j > 0 )
{ splitTexts[i][j].left
= splitTexts[i][j-1].left - splitTexts[i][j].width }
}
if( aiVersion == "10" )
{ splitTexts[i][j].moveBefore( itemsToSplit[i] ) }
else
{ splitTexts[i][j].move( itemsToSplit[i] , ElementPlacement.PLACEBEFORE ) }
}
}
itemsToSplit[i].remove() ;
}
}
*1:txArray.length-1)-j
イラストレーターフォント一覧
// fontsample.js Version 1.00 font_size = 30; type_text = ''; type_text = prompt("テキストを入力してください。そのままリターンを押すと自動で設定されます。",""); // システムにインストールされているフォント全てを走査 for (i=0; i
excelフォント一覧表
Sub font()
'フォント名と見本一覧を作成
Cells(1, 1) = "フォント名"
Cells(1, 2) = "数字見本"
Cells(1, 3) = "小文字見本"
Cells(1, 4) = "大文字見本"
Dim i As Integer
Dim str As String
Dim obj As Object
str = "0123456789"
str2 = "abcdefghijklmnopqrstuvwxyz"
str3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Set obj = Application.CommandBars("Formatting"). _
Controls.Item(1)
For i = 1 To obj.ListCount
Cells(i + 1, 1) = obj.List(i)
Cells(i + 1, 2) = str
Cells(i + 1, 3) = str2
Cells(i + 1, 4) = str3
Cells(i + 1, 2).font.Name = obj.List(i)
Cells(i + 1, 3).font.Name = obj.List(i)
Cells(i + 1, 4).font.Name = obj.List(i)
Next i
End Sub
フォルダ内のpdfを一括印刷
Sub フォルダ内PDFファイル一括印刷()
Dim strPath As String
Dim strFileName As String
Dim pdffiles() As String
Dim intcount As Integer
‘変数strPathに、フォルダのパスを格納
strPath = “C:\Documents and Settings\isa\デスクトップ\問題集\”
‘変数strFileNameに、フォルダ内のファイル名を格納
strFileName = Dir(strPath)
‘フォルダ内のファイルがなくなるまでLoop
Do Until Len(strFileName) = 0
‘ファイル名の右から3文字が”pdf”かどうか判別
If Right(strFileName, 3) = “pdf” Then
‘pdffilesにその時のファイル名を取得し配列として格納
ReDim Preserve pdffiles(intcount)
pdffiles(intcount) = strFileName
‘pdffiles(0)・pdffiles(1)というようにファイルの数だけ
‘配列のインデックス番号が増えて管理できるようにするため+1する
intcount = intcount + 1
End If
‘一度Dir関数で取得されたファイルは取得されないようにする処理
strFileName = Dir()
Loop
‘——————————————
‘ここまでの処理でpdffilesという配列には
‘ファイルの数だけ配列が出来上がっている状態
‘——————————————
‘——————————————
‘ここから下はpdffilesという配列に入っている
‘ファイルを順番に印刷をかける処理
‘——————————————
Dim AcroExchApp As Object
Dim AcroExchPDDoc As Object
Dim AcroExchAvDoc As Object
Dim buf As Long
Set AcroExchApp = CreateObject(”AcroExch.APP”)
Set AcroExchPDDoc = CreateObject(”AcroExch.PDDoc”)
Set AcroExchAvDoc = CreateObject(”AcroExch.AVDoc”)
buf = AcroExchApp.Show
Dim i As Integer
For i = 0 To UBound(pdffiles)
buf = AcroExchAvDoc.Open(strPath & pdffiles(i), “”)
Set AcroExchPDDoc = AcroExchAvDoc.GetPDDoc()
‘開いたPDFファイルのページ数をnumPageに格納
Dim numPage As Long
numPage = AcroExchPDDoc.GetNumPages
‘PrintPagesで印刷をかける
‘プリンタはデフォルトのプリンタで、印刷のダイアログボックスは
‘表示されない
‘以下のステートメントは開いたPDFファイルの
‘最初のページから最後のページまでを印刷をかけるもの
‘また戻り値は「-1」ならうまく機能している
‘「-1」以外はPDFファイルが開いていないときに返される戻り値
buf = AcroExchAvDoc.PrintPages(0, numPage - 1, 2, 0, 0)
‘一行上のステートメントで「-1」以外の戻り値の場合は
‘ファイルが開かれていないときにおきるので
‘変数bufが「-1」以外だったら印刷失敗というメッセージを出すようにしている
If buf <> -1 Then
MsgBox (”印刷に失敗しました。ファイルが開かれていない可能性があります”)
Exit Sub
End If
buf = AcroExchAvDoc.Close(False)
Next
buf = AcroExchApp.Exit
Set AcroExchApp = Nothing
Set AcroExchPDDoc = Nothing
Set AcroExchAvDoc = Nothing
End Sub
忘年会集計
//-------------------------------------------------------------------
// 忘年会アンケートの集計プログラム
//-------------------------------------------------------------------
// 変数の初期化など
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var excel = WScript.CreateObject("Excel.Application");
var result = "";
// ファイルを1つずつ処理する
var dir = fso.GetFolder(".");
var files = new Enumerator(dir.Files);
while (files.atEnd() == false) {
checkExcelFile(files.item());
files.moveNext();
}
excel.Quit();
// 結果をファイルに書き出す
var csv = fso.CreateTextFile("result.csv", true);
csv.WriteLine("名前,部署,一次会,二次会,希望予算,希望会場");
csv.Write(result);
//-------------------------------------------------------------------
// Excelファイルを起動してアンケート記録を取得する関数
function checkExcelFile(f) {
var path = f.Path;
if (!path.match(/\.xls.?$/)) return; // Excelファイル以外は除外
var book = excel.Workbooks.Open(path); // ファイルを読み込む
excel.Visible = true;
var sheet = book.ActiveSheet;
// シートから値を抜き出す
var namae = sheet.getCell(4,3).Value; // お名前
var busyo = sheet.Cells(5, 3).Value; // 部署
var kai1 = sheet.Cells(6, 3).Value; // 一次会への参加
var kai2 = sheet.Cells(7, 3).Value; // 二次会への参加
var yosan = sheet.Cells(8, 3).Value; // 二次会希望予算
var basyo = sheet.Cells(9, 3).Value; // 希望会場
book.Close();
// 集計する
kai1 = (kai1 == "参加") ? 1 : 0; // 参加なら1、不参加なら0に
kai2 = (kai2 == "参加") ? 1 : 0;
var row = [namae,busyo,kai1,kai2,yosan,basyo];
result += row.join(",") + "\n";
}
//-------------------------------------------------------------------