[過去ログ] 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
177: 2017/08/29(火)16:50 ID:iDduY4Qi(1) AAS
お〜瑠璃ね〜むで十分やぞ
D&D用のショトカも作れるしな
178: 2017/08/29(火)17:11 ID:1aRkt9bd(1) AAS
>>175
「のようなファイルがあるときに」の条件がどこまでかわからないが
>>176が一番早いのは間違いない
179: 2017/08/29(火)20:06 ID:KnTCuJQc(1) AAS
set "a=あああ_"
set "b=.flv"
setlocal enabledelayedexpansion
for /L %%i in (1,1,99) do set /a c=%%i+1000 & ren "!a!%%i!b!" "!a!!c:~1!!b!"
180(1): 2017/08/31(木)16:38 ID:omILiWW+(1) AAS
>>175
pushd "%~dp1"
:LOOP
for /f "tokens=1,2 delims=_" %%a in ("%~n1") do (
set FNAME=%%a
set /a FN=%%b+1000
)
ren "%~1" "%FNAME%_%FN:~-3%%~x1"
shift
if not "%~1"=="" goto :LOOP
181: 2017/08/31(木)17:02 ID:KsdTyPQv(1) AAS
>>180
変換の数字の前が_文字じゃないかもしれないし
_文字がファイル名の中に混じっている可能性もあるし
182: 2017/08/31(木)17:53 ID:Vr+Gp9oD(1) AAS
どのスレでも一緒だが質問の要件が分かりにくいのはめんどうだな
183: 2017/08/31(木)18:00 ID:kMuf1wHV(1) AAS
なんでか知らないけど他人に勝手にマルチポストされたけど>>175の質問は元のスレで解決したのでもういいです
184(1): 2017/09/03(日)22:03 ID:BJjXydYg(1) AAS
cd \
pushd D:\abc
setlocal
popd
としても元の \ に戻らなかった
185(1): 2017/09/04(月)00:02 ID:pBY/MKIa(1) AAS
>>184
そうならなきゃ逆にダメでしょ
setlocalでは(親の環境を引き継いだ)別の環境の上で実行されている
カレントを移動しようが環境変数を操作しようが元の環境には影響しない
pushd D:\abc
setlocal
endlocal
popd
または
setlocal
省2
186: 2017/09/04(月)01:15 ID:24unggVp(1) AAS
>>185
ありがとうございました
そういうことでしたか
187(1): 2017/09/16(土)05:02 ID:cRJ1WDqm(1) AAS
今さらバッチファイル入門て…
余計な被害者増やさずPowerShellにしろよ
これだからIT後進国は
超入門コマンドプロンプト:バッチコマンドで定型処理を行う (1/3) - @IT
外部リンク[html]:www.atmarkit.co.jp
017年09月15日 05時00分 公開
188: 2017/09/16(土)05:59 ID:TbhIjs8j(1) AAS
>>187
このスレのタイトル見てから言えよ
それとも、お前は、自分が使ってないソフトのスレ行って
「別のソフト使え」って言って巡るのが趣味なのか?
189: 2017/09/16(土)06:09 ID:NzFbxZfY(1/2) AAS
PowerShellに移行しようと思ったこともあるけどファイルをD&D出来ないから断念した
あと他人の環境で動くのか分からないから渡しにくいし
190: 2017/09/16(土)06:11 ID:NzFbxZfY(2/2) AAS
まあbatに面倒臭いとこがあるのも理解できるけど
せめて正規表現と小数の計算くらいはあればよかったんだが
191: 2017/09/16(土)11:00 ID:Nvo3nRRv(1) AAS
自分で使うにはPoweShellはめちゃめちゃ便利だけど
一般的に定着してるかというとそうじゃないし
192: 2017/09/17(日)11:17 ID:jtG62g+O(1/2) AAS
PowerShell は起動が遅いから小さいバッチをループで呼び出すのには向いてないんじゃないかな。
いったんロードしたオブジェクトを関数形式で呼び出せばいいんだろうけどよくわからなくてめんどくさいし。
193: 2017/09/17(日)11:23 ID:jtG62g+O(2/2) AAS
最近、フリーソフトとかの小さいやつの管理がめんどくさくなって
メニュー代わりにバッチファイルを使うことにしたんですよ。
全部をVHDに入れてマウントなんで、持ち運びは仮想ディスクファイル1個をコピーするだけ。
起動が素早いのがメリット。
アイコンが出ないのがデメリット。
アイコン出そうと思ったら全環境で共通のドライブ名に固定してショートカットを使ったらいいと思うけど。
プログラムの入ったフォルダ
Program Files 3
バッチファイルの入ったフォルダ
Program Link
省3
194: 2017/09/17(日)12:31 ID:z++LvPT9(1/2) AAS
それだけならバッチ作るまでもなくハードリンクにすればアイコン問題も解決では
195: 2017/09/17(日)12:37 ID:z++LvPT9(2/2) AAS
あ、すまんそれだと実行ファイルと同じフォルダのDLL読めないからダメか
196(6): 2017/09/18(月)00:06 ID:AVBMNnfo(1) AAS
短いファイル名に関していくつか質問
1 短いファイル名はダブルクオーテーションで囲まなくても実行可能?
2 短いファイル名は取得して一ヶ月経っても変動せずにそのパスを実行出来る?
197: 2017/09/18(月)23:50 ID:2dThcY7y(1) AAS
>>196
「1」は、多分可能
「2」は、他にファイルが出来なければが前提かと
「dir c:\*1」と「dir c:\*1 /x」を実行して挙動を確かめて下さい。
198: 2017/09/19(火)00:09 ID:I5t298fo(1) AAS
少なくともNTFSではファイルの情報としてショートファイルネームも格納されるから
ファイルが存在したままある日突然名前が変わることはないはず
そのファイルを削除して似たようなロングファイルネームの別のファイルを作った時
同名だけど別のファイルが出来てしまう事はありえる
199(1): 196 2017/09/19(火)01:33 ID:FIGNw+kF(1) AAS
レスありがとうございます。
ちなみに自分がやりたかったのは↓と同じケースで自作のbatをタスクスケジューラに登録したいというものでした。
schtasksで半角スペースを含むパスを実行させたい (DOSプロンプト活用相談室LOG)
外部リンク[html]:fpcu.on.coocan.jp
"を\"と書いてエスケープさせるやり方もあるようですがそちらではbatにダブルクォーテーションで囲った引数を渡すと不可解な動作をすることがあり上手くいきせんでした。
batのパスにスペースを含んだ場合 起動しない
batのパスにスペースを含まない場合 %~dp0を実行したときにbatのフォルダパスの頭にカレントディレクトリの文字列も追加される
200: 2017/09/19(火)02:17 ID:Lhe/hdFe(1) AAS
mklinkやsubstを使って違う名前でアクセスするのはどうなのでしょう
うまくいくかどうかわかりませんが
ファイル名フォルダ名に空白や%^!みたいな記号があると困ることが多いですね
201(1): 2017/09/20(水)03:12 ID:aIPv0JYK(1) AAS
>>199
この書き方に準じていないだけでは?
A Scheduled Task Does Not Run When You Use Schtasks.exe to Create It and When the Path of the Scheduled Task Contains a Space
外部リンク:support.microsoft.com
Schtasks.exe を使用して、スケジュールされたタスクのパスにスペースが含まれている場合を作成するときにスケジュールされたタスクが実行されません。
外部リンク:support.microsoft.com
失敗例
schtasks /create /tn "my task" /tr "c:\foldername containing spaces\script.bat arguments" /sc once /sd 07/29/2003 /st 10:01
成功例
schtasks /create /tn "my task" /tr "\"c:\foldername name containing spaces\script.bat\" arguments" /sc once /sd 07/29/2003 /st 10:01
202: 196 2017/09/20(水)06:44 ID:w13Y3qRA(1/2) AAS
>>201
自分の説明が下手で伝わらなかったんだと思いますが、成功例の方の記述でパスにスペースを含むbatは起動できるのですがそのbatにダブルクオーテーションを含む引数を渡すと動作がおかしくなるのです。
引数にダブルクオーテーションを含まない場合は正常に起動できます。
203: 196 2017/09/20(水)07:01 ID:w13Y3qRA(2/2) AAS
一応追記しておくと、おかしくなるのはタスクスケジューラから起動した場合限定で通常の起動では問題ありません。
呼び出すbat内の記述にミスがあるとかそういうのではないと思います。
204: 2017/09/21(木)11:18 ID:WXZB4PjF(1) AAS
%CMDCMDLINE%はどうなってる?
205: 2017/09/21(木)18:15 ID:X0F1M9Qy(1) AAS
argumentにダブルクォーテションがある場合もパスと同様に\"してる?
206: 2017/09/21(木)18:35 ID:uKBRYTKY(1/2) AAS
test
上下前次1-新書関写板覧索設栞歴
あと 796 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.021s